一尘不染

实例成员不能在'ViewController'类型上使用

swift

class ViewController: UIViewController {

let fortuneArray = ["You will find true love in the summer.", "Outlook not good", "You may find great success in business soon.", "Watch out for grey cats."]
let randomIndex = Int(arc4random_uniform(fortuneArray.count))

override func viewDidLoad() {
    super.viewDidLoad()
    let randomIndex = Int(arc4random_uniform(UInt32(fortuneArray.count)))
    print("random index: ")
    print(randomIndex)
    // Do any additional setup after loading the view, typically from a nib.
}

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

// actions
@IBAction func cookiePressed(sender: AnyObject) {
    fortune.text = fortuneArray[randomIndex]

}

我在Swift中创建了一个非常简单的算命应用程序,并且不断遇到的问题arc4random_uniform。目前,我只是想让该应用程序随机绘制一个字符串,但出现一条错误消息:

实例成员’fortuneArray’不能用于’ViewController’类型

在我声明变量的行上randomIndex。我已经使用Google一段时间了,但没有找到解决方法。希望有人可以帮助,谢谢!

更新 问题已解决!谢谢。


阅读 215

收藏
2020-07-07

共1个答案

一尘不染

如果您粘贴的代码未在诸如之类的方法中定义viewDidLoad,则您也不能将在类级别定义的变量thats也用于在类级别定义的另一个变量。这些变量是在运行时确定的,并且确定它们的顺序是未知的,因此在进行randomIndex之前fortuneArray可能不存在(在幕后可能无法真正起作用,但至少可以这样想)

您应该在viewDidLoadinit或其他函数中计算这些变量

2020-07-07