Swift 3:定义var labels: [UILabel]失败



我被Swift 3中的变量声明卡住了。我的代码是这样的:

代码起始

// Letter Buttons
@IBOutlet weak var LetterOneButton: UIButton!
@IBOutlet weak var LetterTwoButton: UIButton!
@IBOutlet weak var LetterThreeButton: UIButton!
@IBOutlet weak var LetterFourButton: UIButton!
@IBOutlet weak var LetterFiveButton: UIButton!
// Word Fields
@IBOutlet weak var WordLetterOne: UILabel!
@IBOutlet weak var WordLetterTwo: UILabel!
@IBOutlet weak var WordLetterThree: UILabel!
@IBOutlet weak var WordLetterFour: UILabel!
@IBOutlet weak var WordLetterFive: UILabel!
// Counter
@IBOutlet weak var CounterLabel: UILabel!
// Skip Button
@IBOutlet weak var SkipButtonLabel: UIButton!
// Define Variables
var index: Int = 0

错误出现在下一行:

var labels: [UILabel] = [WordLetterOne, WordLetterTwo, WordLetterThree, WordLetterFour, WordLetterFive]

错误信息是"不能在属性初始化器中使用实例成员'WordLetterOne';属性初始化器在'self'可用之前运行"。然后,声明另一个字符串,没有任何问题。

var letters: [String] = ["A", "B", "C", "D", "E"] 

代码结束

和帮助是非常感谢!

编辑:

self.lazy var labels: [UILabel] = [WordLetterOne, WordLetterTwo, WordLetterThree, WordLetterFour, WordLetterFive]

给出了错误"一行上的连续声明必须用';'分隔"one_answers"实例成员'WordLetterOne'不能用于类型'ViewController'"

就像它说的:当运行时构建数组初始化器时,你试图放入数组的属性还没有定义(因为self还没有准备好)

尝试使属性静态(取决于您的实际情况)。或者——初始化init方法中的labels数组。

letters的定义是可以的,因为"A"、"B"等都是常量。

最新更新