主题
属性观察器
属性观察器用于监控属性值的变化,执行相应代码。支持 willSet
和 didSet
两种观察器。
willSet
属性即将被赋新值时调用,默认参数 newValue
表示即将设置的值。
swift
var score: Int = 0 {
willSet {
print("分数即将从 \(score) 改为 \(newValue)")
}
}
score = 10
didSet
属性值设置完成后调用,默认参数 oldValue
表示修改前的值。
swift
var level: Int = 1 {
didSet {
print("等级从 \(oldValue) 提升到 \(level)")
}
}
level = 2
注意事项
- 属性观察器不能用于延迟存储属性(
lazy
)。 - 在初始化过程中赋值不会触发观察器。
总结
属性观察器是监听和响应属性变化的强大工具,有助于实现数据驱动的逻辑。