iOS開發中 property的屬性介紹

2021-06-20 13:37:18 字數 1021 閱讀 3742

@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操作

,不改變引用計數。一般用來處理基本資料型別。

也可以直接使用:

使用assign: 對基礎資料型別 (nsinteger,cgfloat)和c資料型別(int, float, double, char, 等等)

使用copy: 對nsstring

使用retain: 對其他nsobject和其子類

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 預設是有該屬性的,這個屬性是為了保證程式在多執行緒情況,編譯器會自動生成一些互斥加鎖 避免該...