@property相關屬性

@property

1.Assign

簡單賦值,不更改引用計數(shù)

(例如NSInteger,CGFloat)和C數(shù)據(jù)類型(int,float, double, char,等)

適用簡單數(shù)據(jù)類型

對應內部get和set實現(xiàn)(arc):

- (void)setName:(NSString *)name{

_name = name;

}

- (NSString *)name{

return _name;

}

2.retain

與strong相對應,使用了引用計數(shù),retain+1,release -1;當引用計數(shù)為0時,dealloc會被調用,內存被釋放

- (void)setName:(NSString *)name{

if (_name != name) {

[ _name release];

_name = [name retain];

}

}

- (NSString *)name{

return [[ _name retain] autorelease];

}

3.copy

生成的對象與原對象的關系是:與原對象內容相同內存地址不同的新對象

- (void)setName:(NSString *)name{

if (_name != name) {

[ _name release];

_name = [name copy];

}

}

- (NSString *)name{

return [[ _name retain] autorelease];

}

4.atomic

原子屬性:是線程安全的,該屬性下只允許一個線程訪問該對象,因此會影響運行速度;但該屬性下會消耗大量的內存。

5.noatomic

非線程安全,允許多個線程訪問,運行速度快

6.strong

強引用:引用并持有對象,當不存在引用時,對象才能夠銷毀

7.weak

與assign相對應,弱引用;當引用的對象被釋放后,weak指針指向nil防止野指針。

8,readonly

只有get方法,沒有set方法

9,readwrite//默認屬性

有get/set方法

10,unsafe_unretauined

用在ARC編譯環(huán)境下,在此環(huán)境下,與assign相似。它只是告訴ARC如何正確地調用聲明為unsafe_unretauined變量的retain和release

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容