在 Swift 中辐董,didSet 是屬性觀察器的一種。
屬性觀察器用于監(jiān)測屬性值的變化禀综,當(dāng)屬性的值被設(shè)置時,didSet 觀察器就會被觸發(fā)苔严。
以下是一個簡單的示例:
class MyClass {
var counter: Int = 0 {
didSet {
// 在 counter 屬性值被設(shè)置后執(zhí)行這里的代碼
print("counter 的值被更新為 \(counter)")
// 可以在這里添加一些根據(jù)新值進(jìn)行的額外操作
if counter > oldValue {
print("counter 增加了")
} else if counter < oldValue {
print("counter 減少了")
}
}
}
}
使用
let myObject = MyClass()
myObject.counter = 5 // 此時會觸發(fā) didSet 中的代碼
myObject.counter = 8 // 再次觸發(fā) didSet 中的代碼
在 didSet 觀察器中定枷,你還可以訪問 oldValue,它代表屬性的舊值届氢,這在需要對比新舊值以執(zhí)行特定邏輯時非常有用欠窒。
屬性觀察器常用于以下場景:
數(shù)據(jù)綁定和同步:當(dāng)一個屬性變化時,自動更新相關(guān)聯(lián)的其他屬性或者 UI 元素退子。
執(zhí)行額外的邏輯:比如在屬性值改變后進(jìn)行數(shù)據(jù)驗證岖妄、發(fā)送通知、更新緩存等操作寂祥。
記錄和監(jiān)控:記錄屬性值的變化歷史或者監(jiān)控某個關(guān)鍵屬性的狀態(tài)變化荐虐。