八 property相關引數介紹

2021-09-11 12:23:30 字數 1347 閱讀 6951

1、copy使用型別 :nsstring,block2、assign使用型別 :delegate,int,float,nsinteger,bool,列舉結構體... 3、retain使用型別 :nsarray,nsdate4、strong使用型別 :nsstring/block以外的oc物件 5、weak使用型別 :當2個物件相互引用,一端用strong,一端用weak; 6、readonly:唯讀時候(即只需要getter方法的時候); 7、readwriete:預設屬性(getter&&setter方法)

-weak ( arc )1、弱指標是針對物件的修飾詞 , 就是說它不能修飾基本資料型別 . 2、weak 修飾的物件計數器不會+1 , 也就是直接賦值 . 3、弱引用是為打破迴圈引用而生的 . 4、它最被人所喜歡的原因是 它所指向的物件如果被銷毀 , 它會指向 nil . 而 nil 訪問什麼鬼都不會報野指標錯誤 .

if (_delegate)

_delegate = [delegate retain];

複製**

if (_delegate)

_delegate = [delegate copy];

複製**

2、copy 在 arc 時是這麼幹的 copy 新物件( 新物件計數器 +1 ) , 然後指向新物件 . 在set方法裡面是這樣的 :

_delegate = [delegate copy];

複製**

3、使用注意 : 修飾的屬性本身要不可變的 . 例如 nsmutablearray 採用 copy 修飾 , 新增元素表面上可以 一到執行就崩潰了 , 因為 copy 過後實際上成了nsarray了 . ( 隊友 , 我們不吭你 ) 遵守 nscopying 協議的物件使用 .

@synchronized(self) 

複製**

2、需要消耗系統資源 . 3、互斥鎖是利用執行緒同步實現的 , 意在保證同一時間只有乙個執行緒呼叫 set 方法 . 4、其實還有 get 方法 , 要是同時 set 和 get 一起呼叫還是會有問題的 . 所以即使用了 atomic 修飾 還是不夠安全 .

property屬性引數

1.讀寫屬性 預設是readwrite,會生成getter和setter方法 如果是readonly表示只會生成getter方法 2.setter處理 預設是assign 賦值 因此基本資料型別不需要加這個引數。因為在setter方法裡,我們經常要將乙個物件賦值給類的成員屬性,這個時候根據記憶體管理...

引數檢查 property

繫結屬性時,如果直接把屬性暴露出去,雖然寫起來很簡單,但無法對引數進行檢查,導致屬性被隨便修改 因此,可以通過在類內定義get 獲取屬性值,定義set 對屬性值進行設定並對設定值進行檢查 但通過定義get 和set 會讓程式顯得複雜,沒有直接用屬性這麼直接簡單 python內建的 property裝...

property引數講解

一 property作用 1 自動生成私有屬性 2 自動生成這個屬性的getter和setter方法的宣告 3 自動生成這個屬性的getter和setter方法的實現 注意 生成的setter方法的實現中,無論是什麼型別,都是直接賦值 二 property引數 1 property是可以帶引數的 p...