2016-09-11 4 views
-1

나는 사소한 추구 중에 질문을하기 위해이 프로그램을 작성하고 있습니다. 함수에서 변수 size에 저장 될 사전의 크기를 가져 오는 데 문제가 있습니다. 변수를 저장할 수있는 모든 방법을 시도했지만 항상 0의 값을 얻습니다. 기본적으로폐점 시간 빠름

var size:Int = Int() 

@IBOutlet var questionLabel: UILabel! 
@IBOutlet var answerLabel: UILabel! 

@IBAction func answerButton(sender: AnyObject) { 


} 

func getSize() { 

    self.size = scienceDictionary.count 

} 

var scienceDictionary = ["What is the chemical process that converts sugar into alcohol?": "Fermentation", 
    "Where in your body would you find you hippocampus?": "Brain",] 

override func viewDidLoad() { 
    super.viewDidLoad() 
    print(size) 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

답변

0

, 당신의 size 변수는 보여 코드를 기반으로 0입니다 getSize()은 너무 size 절대 변경, 호출되지 않습니다.

그러나 내가하고 싶은 일을하지 않는 것이 좋습니다. 크기 변수를 사용하는 대신 크기를 찾으려면 scienceDictionary.count을 입력하십시오. 이것은 훨씬 명확하고 훨씬 적은 추가 작업이 필요합니다.

+0

그게 작동하지만 난 임의의 숫자로 무작위로 노력하고있어하지만 ViewController에 사전 또는 randomNumber 변수의 크기를 저장할 수 없습니다. – user3103854

0

getSize()은 어디에도 전화하지 않습니다. 당신은 내부에 다음과 같이 실행되는 코드를 호출해야합니다 :

override func viewDidLoad() { 
    super.viewDidLoad() 
    getSize() 
    print(size) 
} 
2

당신은 단지 size 계산 된 속성을 확인해야합니다 :

var size: Int { 
    return scienceDictionary.count 
} 

하고 getSize() 기능이 불필요하게 될 것이다.

+0

그게 효과가 있지만 나는 또한 사전의 크기를 사용하여 난수를 선택하는 난수를 원하지만 난수는 계속 변하고 정적 일 필요가있다. 하지만 뷰 컨트롤러의 함수 밖에서 선언 할 수는 없습니다 – user3103854

+0

@ user3103854 : 코드에 임의의 숫자가 언급되어 있지 않습니다. 귀하의 질문은 완전히 다른 문제가 아니라 실제로 원하는 것을 지정해야합니다. –