Swift 屬性觀察者 備

2021-09-07 06:27:21 字數 915 閱讀 8891

為了監聽屬性的變化,swift提供了屬性觀察者。屬性觀察者能夠監聽儲存屬性的變化,即便變化前後的值相同,它們也能監聽到。

屬性觀察者主要有以下兩個:

屬性觀察者的語法格式如下:

物件導向型別 型別名                        

didset(舊值)                    

}                   

}   

屬性觀察者的語法格式比計算屬性要混亂。

屬性觀察者可以在類和結構體中使用,不能在列舉中使用。

示例**如下:

class employee   

didset(oldnamevalue)   

}  var job: string?  

var salary: double = 0  

var dept: department?  

}   

struct department   

didset   

}  var name: string = "research"  

}   

var emp = employee()  

emp.no = 100  

emp.name = "smith"               ⑬  

var dept = department()  

dept.no = 30                     ⑭  

上述**執行結果如下:

員工name新值:smith  

員工name舊值:tony  

部門編號新值:30  

部門編號舊值:10 

swift學習記錄(計算屬性和屬性觀察者)

計算屬性不直接儲存值,而是提供乙個 getter 和乙個可選的 setter,來間接獲取和設定其他屬性或變數的值。基本語法 class struct enum 型別名 set 新屬性值 示例 class rect set newy var area int var rect rect rect.y ...

觀察者模式Swift版

1 觀察者模式定義?當乙個物件狀態發生改變,所有依賴於他訂閱者都會發生改變 收到狀態改變的通知 2 觀察者模式 應用場景?場景一 關聯場景 場景二 事件多級觸發 場景三 跨系統訊息互動場景 3 觀察者模式 角色劃分?四個角色?角色一 被觀察者 目標物件 抽象 角色二 具體被觀察者 目標物件 角色三 ...

python觀察者模式 python 觀察者模式

python 觀察者模式 前言e 寫的倉促就不截uml類圖了,書本chapter10,p313能看到圖 一旦觀察的主題有更新,就會通知到觀察者們,下面的例子是最簡單的乙個觀察者範例,假設這是一群投機分子密切關注 軍 火 倉庫的產品與數量變動 class inventory def init self...