oc@property屬性

assign: 簡(jiǎn)單的賦值 ?不會(huì)更改索引計(jì)數(shù)(Reference counting),這個(gè)屬性一般用來(lái)處理基礎(chǔ)類型(NSInteger,CGFloat和C語(yǔ)言的 int double floatchar ?...),如果你聲明的屬性是基礎(chǔ)類型的話,assign是默認(rèn)的,你可以不加這個(gè)屬性.

retain: 釋放舊的對(duì)象將舊對(duì)象的值賦予輸入對(duì)象并將輸入對(duì)象的索引計(jì)數(shù)+1 ,主要應(yīng)用與NSObject與其子類中.

copy: 創(chuàng)建一個(gè)索引計(jì)數(shù)為1的對(duì)象釋放掉原來(lái)的對(duì)象

readonly: ?表示只讀屬性 ?只會(huì)生成getter方法不會(huì)生成setter方法.

readwrite:設(shè)置可供訪問(wèn)的級(jí)別,可讀寫,對(duì)比readonly。

nonatimic:非原子訪問(wèn),不加同步,多線程并發(fā)訪問(wèn)提高性能(對(duì)多線程的保護(hù),防止在未寫完,被另一個(gè)線程讀取,造成數(shù)據(jù)錯(cuò))。

iOS 5 中對(duì)屬性的設(shè)置新增了strong 和weak關(guān)鍵字來(lái)修飾屬性

strong 用來(lái)修飾強(qiáng)引用的屬性;

@property (strong) SomeClass * aObject;

對(duì)應(yīng)原來(lái)的

@property (retain) SomeClass * aObject; 和 @property (copy) SomeClass * aObject;

weak 用來(lái)修飾弱引用的屬性;

@property (weak) SomeClass * aObject;

對(duì)應(yīng)原來(lái)的

@property (assign) SomeClass * aObject

__weak, __strong 用來(lái)修飾變量,此外還有 __unsafe_unretained, __autoreleasing 都是用來(lái)修飾變量的。

? ? ?__strong 是缺省的關(guān)鍵詞。

? ? ?__weak 聲明了一個(gè)可以自動(dòng) nil 化的弱引用。

? ? ?__unsafe_unretained 聲明一個(gè)弱應(yīng)用,但是不會(huì)自動(dòng)nil化,也就是說(shuō),如果所指向的內(nèi)存區(qū)域被釋放了,這個(gè)指針就是一個(gè)野指針了。

? ? ?__autoreleasing 用來(lái)修飾一個(gè)函數(shù)的參數(shù),這個(gè)參數(shù)會(huì)在函數(shù)返回的時(shí)候被自動(dòng)釋放。

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

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

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