iOS objective-c 屬性關(guān)鍵字

首先iOS objective - C有以下屬性關(guān)鍵字
strong
weak
assign
atomic
nonatomic
readwrite
readonly
copy
unsafe_unretained
retain

iOS9的幾個(gè)新關(guān)鍵字(nonnull朱躺、nullable迈螟、null_resettable睁宰、__null_unspecified 挖函、__kindof)

基本數(shù)據(jù)類型的默認(rèn)關(guān)鍵字為 atomic, assign, readwrite
普通屬性的默認(rèn)關(guān)鍵字為 atomic, strong, readwrite

屬性關(guān)鍵字大致可分為三類:
1.表示原子性的
atomic:原子性,線程安全(其實(shí)只是setter, getter方法是原子操作,線程安全)
nonatomic:非原子性,非線程安全

2.表示引用計(jì)數(shù)的
strong:強(qiáng)引用,引用計(jì)數(shù)加1
weak:弱引用,不增加引用計(jì)數(shù)
retain:和strong相同
assign:用來修飾基本數(shù)據(jù)類型
copy:創(chuàng)建一個(gè)新對象
unsafe_unretained:跟 weak 類似恳守,聲明一個(gè)弱引用句各,但是當(dāng)引用計(jì)數(shù)為 0 時(shí)粹断,變量不會自動(dòng)設(shè)置為 nil

3.表示讀寫權(quán)限的
readonly:只讀
readwrite:讀寫

原子性相關(guān)關(guān)鍵字 atomic / nonatomic

atomic
關(guān)鍵字修飾后的屬性會保證該屬性的getter,setter方法是原子性的,為了保證其原子性,在getter,setter方法中加了鎖, 而這種機(jī)制是耗費(fèi)系統(tǒng)資源的.
當(dāng)屬性為基本數(shù)據(jù)類型時(shí)使用atomic可以保證線程安全
當(dāng)屬性為普通屬性時(shí), 只對getter,setter方法做處理是無法保證線程安全的,因?yàn)橛锌赡苓@個(gè)屬性是一個(gè)對象, 當(dāng)對這個(gè)對象里面的其他屬性做操作時(shí)就無法保證了.

nonatomic
為非原子性,不會對getter,setter方法加鎖, 所以執(zhí)行速度就會比atomic快,消耗資源也沒有atomic多.
所以我們一般使用nonatomic

引用計(jì)數(shù)相關(guān)關(guān)鍵字 strong/weak/assign/retain/copy/unsafe_unretained

strong
使用strong會對對象強(qiáng)引用, 會增加對象的引用計(jì)數(shù)

@property (nonatomic, strong) Person *B;
Person *A = [Person new];
B = A;
A = nil;
此時(shí)B不為nil

weak
對對象弱引用,不會增加引用計(jì)數(shù),當(dāng)所指向的對象為nil,時(shí)當(dāng)前對象也為nil.

@property (nonatomic, weak) Person *B;
Person *A = [Person new];
B = A;
A = nil;
此時(shí)B也為nil

assign
常用語基本數(shù)據(jù)類型如NSNumber CGFloat 等

retain
strong作用相同,MRC時(shí)留下的

copy
會重新copy一個(gè)新的對象, 一般用于NSString, NSArray, 如果是自定義對象則需要實(shí)現(xiàn)NSCopying協(xié)議

unsafe_unretained
這個(gè)關(guān)鍵字和 week 非常相似齐邦, 也是可以同時(shí)修飾基本數(shù)據(jù)類型和 NSObject 對象 ,其實(shí)它本身是 week 的前身 , 在 iOS5 之后憔四,基本都用 week 代替了 unsafe_unretained 膀息。 但它們之間還是稍微有點(diǎn)區(qū)別的,并不是完全一樣了赵,對上層代碼來說潜支,能用 unsafe_unretained 的地方,都可以用 week 代替柿汛。同時(shí)要注意一點(diǎn)冗酿,這個(gè)修飾符修飾的變量不屬于編譯器的內(nèi)存管理對象。

讀寫權(quán)限相關(guān)關(guān)鍵字 readonly / readwrite

readwrite
使用該關(guān)鍵字會自動(dòng)生成setter/getter方法

readonly
只會生成getter方法

iOS9的幾個(gè)新關(guān)鍵字(nonnull络断、nullable裁替、null_resettable、__null_unspecified 貌笨、__kindof)

nonnull
表示該屬性不能為空

nullable
表示可以為空

null_resettable
get 不能返回空, set 可以為空(注意:如果使用null_resettable,必須重寫 get 方法或者 set 方法,處理傳遞的值為空的情況))

__null_unspecified
不確定是否為空

__kindof
放在類型前面,表示修飾這個(gè)類型(__kindof MyCustomClass *)
表示當(dāng)前類,也可以表示當(dāng)前類的子類

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末弱判,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子锥惋,更是在濱河造成了極大的恐慌昌腰,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膀跌,死亡現(xiàn)場離奇詭異遭商,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)捅伤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門劫流,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事祠汇∪猿樱” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵座哩,是天一觀的道長徒扶。 經(jīng)常有香客問我,道長根穷,這世上最難降的妖魔是什么姜骡? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮屿良,結(jié)果婚禮上圈澈,老公的妹妹穿的比我還像新娘。我一直安慰自己尘惧,他們只是感情好康栈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著喷橙,像睡著了一般啥么。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上贰逾,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天悬荣,我揣著相機(jī)與錄音,去河邊找鬼疙剑。 笑死氯迂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的言缤。 我是一名探鬼主播嚼蚀,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼管挟!你這毒婦竟也來了轿曙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤僻孝,失蹤者是張志新(化名)和其女友劉穎拳芙,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體皮璧,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年分飞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了悴务。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,117評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖讯檐,靈堂內(nèi)的尸體忽然破棺而出羡疗,到底是詐尸還是另有隱情,我是刑警寧澤别洪,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布叨恨,位于F島的核電站,受9級特大地震影響挖垛,放射性物質(zhì)發(fā)生泄漏痒钝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一痢毒、第九天 我趴在偏房一處隱蔽的房頂上張望送矩。 院中可真熱鬧,春花似錦哪替、人聲如沸栋荸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晌块。三九已至,卻和暖如春帅霜,著一層夾襖步出監(jiān)牢的瞬間匆背,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工义屏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留靠汁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓闽铐,卻偏偏與公主長得像蝶怔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子兄墅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容