我无法在属性初始值设定项中使用实例成员数组

时间:2018-01-22 06:33:19

标签: xcode

import UIKit

class ViewController: UIViewController {

    @IBOutlet var Text1: UITextField!
    @IBOutlet var Text2: UITextField!
    @IBOutlet var Text3: UITextField!
    @IBOutlet var Label: UILabel!

    let array = ["Frodo", "sam", "wise", "gamgee"]
    let randomIndex = Int(arc4random_uniform(UInt32(array.count))) //Problem is here

    @IBAction func button(_ sender: Any) {

        Label.text = array[randomIndex]
    }
}

2 个答案:

答案 0 :(得分:0)

您没有提出任何问题,因此我认为您在访问count的{​​{1}}时遇到问题。

通常,在init完成之前,您无法访问任何实例成员。 (至少)有三种解决方案可以解决您的问题。

首先是覆盖UIViewController所需的所有array并在那里设置init

其次是randomIndex使用lazy

randomIndex

第三是为这些数据使用一些模型(类/结构)并将其注入ViewController

答案 1 :(得分:0)

您无法运行该行来获取该类顶层的随机索引。

必须位于 函数/方法中

@IBAction func button(_ sender: Any) {
    let randomIndex = Int(arc4random_uniform(UInt32(array.count)))
    Label.text = array[randomIndex]
}

请遵守变量名称以小写字母(text1label)开头的命名约定。