swift學習之十四 計算屬性和儲存屬性

2021-07-12 04:57:43 字數 965 閱讀 8276

//------------------------//

/* 注意點

1:willset得注意大小寫,寫錯了,不認識,而且還沒有書寫提示。

2:儲存屬性只要合法,不用指明型別或者初始值,都可以加willset.

3:即使是相同的值,也會呼叫

4:willset和didset只能用於儲存屬性。set和get只能用於計算屬性,但沒有只寫屬性。

*//*8,和int64一樣,8個位元組。*/

print(sizeof(int))

class onlyonecalculateproperty:nsobject

set(newvalue)

}}/*16。可見計算屬性不佔儲存空間,和沒有一樣大小。計算屬性set和get裡面要注意死迴圈哈~!*/

print(class_getinstancesize(onlyonecalculateproperty))

class onlyonestoreproperty:nsobject

didset(oldvalue)

}}/*24。可見儲存屬性占用儲存空間,多了8位元組。*/

print(class_getinstancesize(onlyonestoreproperty))

class person:nsobject

didset(oldvalue)

}var weight:int

set(newvalue)

}}/*計算屬性可以被子類覆蓋,儲存的不可以哦~!*/

class student: person

set(newvalue)

}}let p = person()

p.weight = 80

print(p.weight)

let s = student()

s.weight = 80

print(s.weight)

Swift學習之屬性

1.儲存屬性 就是儲存在特定類或者結構體的例項的乙個變數或者常量struct fixedlengthrange let fixlengthrange fixedlengthrange print fixlengthrange.firstvalue 4 因為fixlengthrange 是常量,其所有...

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

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

Swift學習筆記十四

deinitialization 當類的例項物件即將要被釋放時,會立即呼叫deinitializer,通過deinit關鍵字來定義deinitializer,和initializer一樣,它也只存在於類型別上。當例項物件不再有用時,swift會自動釋放該物件。swift通過自動引用計數 arc 來管...