IOS開的property要點總結

2021-07-03 11:22:50 字數 1006 閱讀 7369

在.h檔案裡面宣告@property和在m類實現檔案里央使用@synthesize用於隱性實現對類成員變數的讀取。

property涉及到的屬性值包括:atomic,nonatomic,readonly,readwrite,assign,retain,copy,getter,setter,另外還有強引用strong和弱引用weak.都是對成員訪問和修改進行限制

下面對屬性使用進行簡要概括:

atomic和nonatomic是原子操作,也就是對該元素的操作使用atomic可以理解為訊號量訪問機制,且資源只有乙個,訪問速度較慢。使用nonatomic是多執行緒同時訪問乙個資料量,提高訪問速度,但是不安全,兩者不可並用。atomic為預設的處理方式

readonly定義成員變數後,只能對該變數進行讀操作,適合用於較為固定的資料值 。readwrite可讀可寫。readwite為預設的處理方式。

assign,retain,copy為對物件不同的處理方式:assign為預設的處理方式,assign關鍵字代表setter直接賦值,而不是複製或者保留它,更不需要進行引用計數。這種機制非常適合一些基本資料型別,比如nsinteger和cgfloat,或者你並不直接擁有的型別,比如delegates.

copy與retain的具體區別為:copy其實是建立了乙個相同的物件,而retain只是儲存其物件,並且其計數值+1。也就是說下個是複製變數建立乙個新的變數,而另乙個只是指標引用,後者適用於一般物件引用,而前者適用於特殊,比如nstring,string.預設屬性為automic,assign.reain強調的是引用,而copy的效果是在另乙個位址重新創那乙個新的相同物件。

weak與strong可以理解為乙個是強鏈結,乙個是弱鏈結,相當於乙個是linux下面的硬連線,而另乙個只是個快捷方式。強連線儲存對物件的持有,弱連線只是個簡單的引用,最重要的一點就是強鏈結所指物件被刪除後,若之前有弱連線指向該對像,則現在引用為空。

還有一點要強調的是對於同乙個物件如果既有property定義屬性,同時又有對於該物件的get或set方法,最後以set或get方法為準。

ios開發中 property的屬性介紹

大家都知道 property和 synthesize可以自動生成某個類成員變數的訪問方法,但可能對property中的一些屬性不是很了解,網上的一些介紹有的不是很正確,感覺會誤導新手,於是準備詳細介紹一下property中的詳細屬性。先介紹一下預設的情況 readwrite 這個屬性是預設的情況,會...

ios程式設計 property的屬性列表分析

2013 05 30 00 35 54人閱讀收藏 舉報property ioscopy 很多在學習objective c的時候,都會對 property的使用方法感到困惑。但是呢,property又是我們最常使用的以一種機制,很多人在抄寫ios程式設計實戰 時,對於 property strong,...

iOS開發中 property的屬性介紹

property與 synthesize是成對出現的,可以自動生成某個類成員變數的訪問方法。在xcode4.5以及以後的版本,synthesize可以省略。1.atomic與nonatomic atomic 預設是有該屬性的,這個屬性是為了保證程式在多執行緒情況,編譯器會自動生成一些互斥加鎖 避免該...