如何使用初始化器设置存储属性的初始值?

时间:2016-01-12 09:07:56

标签: cocoa swift2 nsviewcontroller

此代码不起作用。

import Cocoa

class ViewController: NSViewController {

    @IBOutlet weak var textField: NSTextField!

    var guessScore : Int

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override init(){
        super.init()
        guessScore = 1
    }

2 个答案:

答案 0 :(得分:0)

在调用super.init()之前,必须初始化所有属性(它们必须有一些'default'值),请阅读apple docs。

override init(){
    guessScore = 1
    super.init()
}

答案 1 :(得分:0)

您的代码生成: enter image description here

因此,您可能只想按照Xcode提供的说明操作并覆盖指定的初始化程序:

var guessScore: Int

override init?(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
    guessScore = 1
    super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}

required init?(coder: NSCoder) {
    guessScore = 1
    super.init(coder: coder)
}

或者直接没有任何初始值设定项,提供默认值:

var guessScore: Int = 1