Swift中willSet和didSet有什么用?属性观察者
大家好!我最近开始学习Swift,遇到了`willSet`和`didSet`这样的东西。我大概明白这与属性变化有关,但无法完全理解它们到底有什么用。
例如,我有一个简单的应用,希望在变量`score`的值改变时更新屏幕上的label。现在我这样做:
```swift
var score = 0 {
willSet {
print("即将有新值:\(newValue)")
}
didSet {
print("旧值是:\(oldValue)")
scoreLabel.text = "分数:\(score)"
}
}
```
我看到代码能运行,但我不明白这与像`updateScore(newValue: Int)`这样手动调用的简单方法有什么区别。好处在哪里?什么时候真正需要使用`willSet`和`didSet`,什么时候最好不用它们?有没有什么陷阱?
感谢详细解释和实际例子。谢谢!
<<>>