@property 修飾符

@property 修飾符

修飾符的作用都是針對(duì)系統(tǒng)生成的getter烤蜕、setter方法芥映,對(duì)于自定義getter、setter的對(duì)象只能起到參考的作用贩猎,直接使用(_變量名)同樣不受關(guān)鍵字的影響澎语。

關(guān)鍵字 基本類(lèi)型 Objective-C對(duì)象 Block Core Foundation對(duì)象
assign
weak
strong √(=copy)
retain √(warning)
copy
atomic
noatomic

注:對(duì)于Objective-C對(duì)象途事,Block,strong為默認(rèn)修飾符,其他類(lèi)型默認(rèn)用assign修飾擅羞,assgin,strong不可共存尸变。

基本類(lèi)型int,float祟滴,double等

  1. 基本類(lèi)型不受ARC管理振惰,由系統(tǒng)自動(dòng)回收棧內(nèi)存歌溉。
  2. 用assign作為屬性默認(rèn)值垄懂,即getter、setter不做任何多余處理痛垛。
  3. 默認(rèn)支持線程保護(hù)草慧,保護(hù)getter、setter的完整性匙头。

Objective-C對(duì)象

  1. Objective-C對(duì)象受到ARC管理漫谷,根據(jù)引用計(jì)數(shù)自動(dòng)回收內(nèi)存。
  2. assign與weak
  • 相同點(diǎn):不增加引用計(jì)數(shù)
  • 不同點(diǎn):weak引用計(jì)數(shù)為0時(shí)會(huì)把指針指向nil蹂析,assgin會(huì)產(chǎn)生野指針舔示。
  1. strong與retain
  • 特點(diǎn):引用計(jì)數(shù)都增加+1,對(duì)于Objective-C對(duì)象strong=retain,但是對(duì)于Block不同,下面再說(shuō)电抚。
  1. copy
  • copy比較復(fù)雜,先說(shuō)一下我理解copy的語(yǔ)意惕稻,對(duì)于用copy修飾的對(duì)象。在setter中賦值a = b時(shí)候是有替換為a = [b copy]蝙叛,即調(diào)用copy方法俺祠。如果該對(duì)象沒(méi)有copy方法或者沒(méi)有實(shí)現(xiàn)NSCopying協(xié)議,使用該修飾符可以通過(guò)編譯,但在運(yùn)行時(shí)會(huì)報(bào)錯(cuò)蜘渣。而對(duì)于某些NSMutable對(duì)象淌铐,例如:
NSMutableArray *a = [[NSMutableArray alloc]init];
NSMutableArray *b = [a copy];
  • 由于copy方法的特性返回的對(duì)象實(shí)際上是不可修改的,實(shí)際上就是NSArray對(duì)象蔫缸。
    NSArray對(duì)象沒(méi)有addObject腿准,removeAll等方法,如果調(diào)用到必然出現(xiàn)運(yùn)行時(shí)錯(cuò)誤拾碌。
    對(duì)于NSString的copy方法有些特殊释涛,例如:
@property (copy) NSString *copyStr;
NSMutableString *mStr = [NSMutableString stringWithString:@"string"];
self.copyStr = self.mStr;
[self.name2 appendString:@"11122"];
  • 這時(shí)copyStr是“string11122”還是“string”?倦沧?唇撬?

  • 為了處理這個(gè)特殊性,NString copy會(huì)檢查一下參數(shù)類(lèi)型是不是可變的展融。

  • 如果是可變的窖认,進(jìn)行深拷貝。

  • 如果不是可變的告希,進(jìn)行淺拷貝效果與用strong修飾相同扑浸。

  1. 默認(rèn)支持線程保護(hù),保護(hù)getter燕偶、setter的完整性喝噪。

Block

  1. Block受到ARC管理,但于Objective-C對(duì)象有所不同指么,由系統(tǒng)自動(dòng)回收內(nèi)存酝惧。

  2. 雖然上面的修飾符都可以用并且通過(guò)編譯,但retain會(huì)出現(xiàn)警告伯诬,提示用copy替換晚唇。

  • 以下是個(gè)人理解可能有誤,歡迎指正盗似。
  • block比較復(fù)雜創(chuàng)建的時(shí)候是在棧中哩陕,運(yùn)行的時(shí)候如果沒(méi)有捕獲對(duì)象就在棧中運(yùn)行,如果有捕獲對(duì)象就先copy到堆中運(yùn)行赫舒。
  1. assign悍及,weak,retain,strong接癌,copy
  • 都不會(huì)增加引用計(jì)數(shù)心赶,block的引用計(jì)數(shù)始終為1。
  • 不管用那個(gè)關(guān)鍵字修飾可能內(nèi)部實(shí)現(xiàn)都是一樣的扔涧。
  • 但是為了更加符合語(yǔ)義推薦使用copy關(guān)鍵字园担。
    1. 默認(rèn)支持線程保護(hù)届谈,保護(hù)getter、setter的完整性弯汰。
  • 關(guān)于block更詳細(xì)的介紹可以參考點(diǎn)擊這里

Core Foundation對(duì)象

  1. Core Foundation對(duì)象不受ARC管理艰山,需要使用CFRetain CFRelease手動(dòng)管理內(nèi)存。
  2. 用assign作為屬性默認(rèn)值
  3. 默認(rèn)支持線程保護(hù)咏闪,保護(hù)getter曙搬、setter的完整性。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鸽嫂,一起剝皮案震驚了整個(gè)濱河市纵装,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌据某,老刑警劉巖橡娄,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異癣籽,居然都是意外死亡挽唉,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)筷狼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)瓶籽,“玉大人,你說(shuō)我怎么就攤上這事埂材∷芩常” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵俏险,是天一觀的道長(zhǎng)严拒。 經(jīng)常有香客問(wèn)我,道長(zhǎng)寡喝,這世上最難降的妖魔是什么糙俗? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任勒奇,我火速辦了婚禮预鬓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赊颠。我一直安慰自己格二,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布竣蹦。 她就那樣靜靜地躺著顶猜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪痘括。 梳的紋絲不亂的頭發(fā)上长窄,一...
    開(kāi)封第一講書(shū)人閱讀 49,829評(píng)論 1 290
  • 那天滔吠,我揣著相機(jī)與錄音,去河邊找鬼挠日。 笑死疮绷,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嚣潜。 我是一名探鬼主播冬骚,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼懂算!你這毒婦竟也來(lái)了只冻?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤计技,失蹤者是張志新(化名)和其女友劉穎喜德,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體垮媒,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡住诸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涣澡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贱呐。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖入桂,靈堂內(nèi)的尸體忽然破棺而出奄薇,到底是詐尸還是另有隱情,我是刑警寧澤抗愁,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布馁蒂,位于F島的核電站,受9級(jí)特大地震影響蜘腌,放射性物質(zhì)發(fā)生泄漏沫屡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一撮珠、第九天 我趴在偏房一處隱蔽的房頂上張望沮脖。 院中可真熱鬧,春花似錦芯急、人聲如沸勺届。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)免姿。三九已至,卻和暖如春榕酒,著一層夾襖步出監(jiān)牢的瞬間胚膊,已是汗流浹背故俐。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留紊婉,地道東北人购披。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像肩榕,于是被迫代替她去往敵國(guó)和親刚陡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

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