//------------------------//
/* 注意點
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 來管...