gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 14:13:36 24 4
gpt4 key购买 nike

好吧,我可能错过了一些 super 基本的东西。我有一个名为 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 “

我觉得我错过了一些东西,但无法以一种可以让我进行正确研究的方式表达出来。

最佳答案

您可能会在“ViewController”类的不同实例上调用这些方法。

(一个典型的场景是从 Storyboard加载 Controller 时;它“看起来”像 Storyboard中的实例,但它们实际上只是蓝图。)

关于swift - 无法从方法中永久更改实例属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31484924/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com