@property與@synthesize是成對出現的,可以自動生成某個類成員變數的訪問方法。在xcode4.5以及以後的版本,@synthesize可以省略。
1.atomic與nonatomic
atomic:預設是有該屬性的,這個屬性是為了保證程式在多執行緒情況,編譯器會自動生成一些互斥加鎖**,避免該變數的讀寫不同步問題。
nonatomic:如果該物件無需考慮多執行緒的情況,**入這個屬性,這樣會讓編譯器少生成一些互斥加鎖**,可以提高效率。
2.readwrite與readonly
readwrite:這個屬性是預設的情況,會自動為你生成訪問器。
readonly:只生成getter不會有setter方法。
readwrite、readonly這兩個屬性的真正價值,不是提供成員變數訪問介面,而是控制成員變數的訪問許可權。
3.strong與weak
strong:強引用,也是我們通常說的引用,其存亡直接決定了所指向物件的存亡。如果不存在指向乙個物件的引用,並且此物件不再顯示在列表中,則此物件會被從記憶體中釋放。
weak:弱引用,不決定物件的存亡。即使乙個物件被持有無數個弱引用,只要沒有強引用指向它,那麼還是會被清除。
strong與retain功能相似;weak與assign相似,只是當物件消失後weak會自動把指標變為nil;
4.assign、copy、retain
assign:預設型別,setter方法直接賦值,不進行任何retain操作,不改變引用計數。一般用來處理基本資料型別。
ios開發中 property的屬性介紹
大家都知道 property和 synthesize可以自動生成某個類成員變數的訪問方法,但可能對property中的一些屬性不是很了解,網上的一些介紹有的不是很正確,感覺會誤導新手,於是準備詳細介紹一下property中的詳細屬性。先介紹一下預設的情況 readwrite 這個屬性是預設的情況,會...
iOS開發中 property的屬性介紹
property與 synthesize是成對出現的,可以自動生成某個類成員變數的訪問方法。在xcode4.5以及以後的版本,synthesize可以省略。1.atomic與nonatomic atomic 預設是有該屬性的,這個屬性是為了保證程式在多執行緒情況,編譯器會自動生成一些互斥加鎖 避免該...
iOS開發中 property的屬性介紹
property與 synthesize是成對出現的,可以自動生成某個類成員變數的訪問方法。在xcode4.5以及以後的版本,synthesize可以省略。1.atomic與nonatomic atomic 預設是有該屬性的,這個屬性是為了保證程式在多執行緒情況,編譯器會自動生成一些互斥加鎖 避免該...