9 7 Swift屬性觀察器

2021-07-25 11:32:57 字數 963 閱讀 7916

/**

屬性觀察器

觀察屬性的變化,是指屬性被修改時可以呼叫我們事先寫好的**去額外執行一些操作。

類似於oc中的

kvo

存在兩種屬性觀察器

1. willset

在設定新值的時候呼叫

2. didset 

在設定新值的之後呼叫

可以直接為除

lazy

屬性之外的儲存屬性新增屬性觀察器,你不可以直接給類裡面的計算屬性新增屬性觀察器,

當然也可以在繼承類中為父類的計算屬性提供屬性觀察器(後面再講)。 */

struct

myrect

didset }

varsize: (w:

double

, h:

double

) = (0,

0)var

center: (x:

double

, y:

double

) = (0,

0) }

varrect =

myrect()

rect.

size

= (100

, 100)

// 寫內容被修改的時候被呼叫

rect.

origion

= (9, 9

) // setter 寫

// 這個時候不會呼叫了

letdd = rect.

origion

// getter 讀

rect.

center

= (rect.

origion

.x + rect.

size

.w /

2, rect.

origion

.y + rect.

size

.h / 2)

swift 屬性觀察器

用來監視屬性值變化,當屬性值發生改變時可以對此作出響應。可以為除了延遲儲存屬性之外的其他儲存屬性新增屬性觀察器,也可以通過過載屬性的方式為繼承的屬性 包括儲存屬性和計算屬性 新增屬性觀察器。swift 屬性擁有setget語法 var score int set 複製 willset和didset分...

Swift 屬性觀察器

1 簡單介紹 屬性觀察器監控和響應屬性值的變化,每次屬性被設定值的時候都會呼叫屬性觀察器,甚至新的值和現在的值相同的時候也不例外。可以為除了延遲儲存屬性之外的其他儲存屬性新增屬性觀察器,也可以通過過載屬性的方式為繼承的屬性 包括儲存屬性和計算屬性 新增屬性觀察器。注意 不需要為無法過載的計算屬性新增...

swift 學習筆記 23 屬性 屬性觀察器

這裡定義乙個類,number,乙個屬性為 max,代表最大值,先不看後面 willset 等的內容,如果只是乙個普通的屬性,當改變這個屬性值的時候很好改變,隨便賦值,不管後來的值是否比原來的值大還是小 當有需求為,後面賦值比原來值大時,賦值成功,小於原來值的時候,保持原值,就需要 判斷了,就需要屬性...