在 Swift 中,didSet 是属性观察器的一种。
属性观察器用于监测属性值的变化,当属性的值被设置时,didSet 观察器就会被触发。
以下是一个简单的示例:
class MyClass {
var counter: Int = 0 {
didSet {
// 在 counter 属性值被设置后执行这里的代码
print("counter 的值被更新为 \(counter)")
// 可以在这里添加一些根据新值进行的额外操作
if counter > oldValue {
print("counter 增加了")
} else if counter < oldValue {
print("counter 减少了")
}
}
}
}
使用
let myObject = MyClass()
myObject.counter = 5 // 此时会触发 didSet 中的代码
myObject.counter = 8 // 再次触发 didSet 中的代码
在 didSet 观察器中,你还可以访问 oldValue,它代表属性的旧值,这在需要对比新旧值以执行特定逻辑时非常有用。
属性观察器常用于以下场景:
数据绑定和同步:当一个属性变化时,自动更新相关联的其他属性或者 UI 元素。
执行额外的逻辑:比如在属性值改变后进行数据验证、发送通知、更新缓存等操作。
记录和监控:记录属性值的变化历史或者监控某个关键属性的状态变化。