2016-09-11 2 views
-1

Я строю эту программу для использования во время Trivial Pursuit для вопросов. У меня возникли проблемы с получением размера словаря для хранения в переменной size функции. Я пробовал каждый способ сохранить переменную, но всегда получаю нулевое значение.Выход из закрытия Swift

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

Это будет работать, но я пытаюсь рандомизировать его со случайным числом, но я не могу сохранить размер словаря или переменную randomNumber в ViewController. – user3103854

0

Вы не звоните getSize() куда угодно. Вы должны вызвать его для кода внутри, чтобы быть выполнен, например:

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

Вы должны просто сделать size вычисляемое свойство:

var size: Int { 
    return scienceDictionary.count 
} 

и ваша getSize() функция станет излишней.

+0

Это работает, но я также, но также хочу случайное число, которое использует размер словаря для выбора случайного числа, но случайное число продолжает меняться и требует, чтобы оно было статичным. Но я не могу объявить его вне функции в контроллере представления – user3103854

+0

@ user3103854: В вашем коде не упоминаются случайные числа. Ваш вопрос должен указывать то, что вы на самом деле хотите, а не какую-то совершенно другую проблему. –

Смежные вопросы