@property相關(guān)屬性

@property

1.Assign

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

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

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

對應(yīng)內(nèi)部get和set實(shí)現(xiàn)(arc):

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

_name = name;

}

- (NSString *)name{

return _name;

}

2.retain

與strong相對應(yīng),使用了引用計(jì)數(shù),retain+1,release -1;當(dāng)引用計(jì)數(shù)為0時(shí),dealloc會被調(diào)用,內(nèi)存被釋放

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

if (_name != name) {

[ _name release];

_name = [name retain];

}

}

- (NSString *)name{

return [[ _name retain] autorelease];

}

3.copy

生成的對象與原對象的關(guān)系是:與原對象內(nèi)容相同內(nèi)存地址不同的新對象

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

if (_name != name) {

[ _name release];

_name = [name copy];

}

}

- (NSString *)name{

return [[ _name retain] autorelease];

}

4.atomic

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

5.noatomic

非線程安全,允許多個(gè)線程訪問,運(yùn)行速度快

6.strong

強(qiáng)引用:引用并持有對象,當(dāng)不存在引用時(shí),對象才能夠銷毀

7.weak

與assign相對應(yīng),弱引用;當(dāng)引用的對象被釋放后,weak指針指向nil防止野指針。

8,readonly

只有g(shù)et方法,沒有set方法

9,readwrite//默認(rèn)屬性

有g(shù)et/set方法

10,unsafe_unretauined

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

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容