Observation|使用 didSet/willSet 属性观察器
了解如何使用 Swift 中的属性观察器。

didSet
和 willSet
是 Swift 中的属性观察器(property observer),它会在属性值变化后自动调用:
var someProperty: Int = 0 {
willSet {
print("即将从 \(someProperty) 变为 \(newValue)")
}
didSet {
print("已从 \(oldValue) 变为 \(someProperty)")
}
}
willSet
和didSet
的区别:
willSet
: 在属性值被设置前调用,可以通过newValue
访问即将设置的新值didSet
:在属性改变后执行,可以访问oldValue
这些观察器在需要在属性值改变前/后执行额外操作时非常有用。
基本用法
根据论坛信息显示,之前在 Observable 类中使用 didSet
和 willSet
可能无法正常工作。
因此,2025 年 4 月,我在最新版本的 Xcode 和 iOS 版本上测试是否已经可用。
iOS 18.4 测试可用
在 Xcode 16.3 + iOS 18.4 上,测试可以正常工作:


iOS 17.4 测试可用
在 Xcode 16.3 + iOS 17.4 上,测试可以正常工作,输入和上面一致。
在 didSet 中调用 Actor?
确实可行。