Swift 迅速摆脱封锁

Swift 迅速摆脱封锁,swift,dictionary,Swift,Dictionary,我正在构建这个程序,以便在琐碎的提问过程中使用。从函数中获取要存储在size变量中的字典大小时遇到问题。我尝试了各种方法来存储变量,但我总是得到零值 var size:Int = Int() @IBOutlet var questionLabel: UILabel! @IBOutlet var answerLabel: UILabel! @IBAction func answerButton(sender: AnyObject) { } func getSize() { se

我正在构建这个程序,以便在琐碎的提问过程中使用。从函数中获取要存储在size变量中的字典大小时遇到问题。我尝试了各种方法来存储变量,但我总是得到零值

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。根据您显示的代码,永远不会调用getSize,因此大小永远不会更改

但是,我建议不要做你想做的事情。不使用大小变量,只需键入scienceDictionary.count即可找到大小。这更清晰,需要的额外工作也更少

任何地方都不能调用getSize。您应该调用它以执行内部代码,如下所示:

override func viewDidLoad() {
    super.viewDidLoad()
    getSize()
    print(size)
}
您只需将大小设置为计算属性:

var size: Int {
    return scienceDictionary.count
}

您的getSize函数将变得多余。

这会起作用,但我正在尝试使用随机数将其随机化,但我无法将字典或随机数变量的大小存储在ViewController中。这是可行的,但我也希望使用字典的大小来选择随机数,但随机数不断变化,需要它是静态的。但是我不能在视图中的任何函数之外声明它controller@user3103854:您的代码没有提到随机数。你的问题应该明确你真正想要什么,而不是一些完全不同的问题。