无法从方法中永久更改实例属性?

时间:2015-07-17 21:23:04

标签: swift cocoa

好吧,我可能错过了一些超级基本的东西。我有一个名为currentValue的实例属性,初始化为String

class ViewController: NSViewController {
    var currentValue = ""

    // ...


    func getNewValue() {
        currentValue = computeNewValue()
        aLabel.stringValue = currentValue
    } 

    func calledLater() {
        println("\(currentValue)")
    }
} 

当我致电getNewValue()时,标签会正确更新。

但是,当我调用calledLater()时,currentValue被“重置”为空字符串。

起初我认为这是一个弱存储的东西,但Swift显然默认为强存储?

我通过将currentValue初始化为"a"来测试了这一点,并且标签再次正确更新,但是当我稍后获得变量时,它会返回"a"

我觉得我错过了一些东西,但不能以一种能让我做正确研究的方式来表达。

1 个答案:

答案 0 :(得分:0)

你可能会在你的ViewController'的不同实例上调用这些方法。类。

(典型情况是从故事板加载控制器;它看起来像故事板中的实例,但它们实际上只是蓝图。)