iOS之——關(guān)鍵詞strong球恤、weak辜昵、assign、copy

淺談——名詞strong咽斧、weak堪置、assign、copy收厨,并比較不同

  • strong 表示指向并擁有該對象晋柱。其修飾的對象引用計數(shù)會增加1。該對象只要引用計數(shù)不為0則不會被銷毀诵叁。當(dāng)然強行設(shè)置為nil可以銷毀她
  • weak 表示指向但不擁有該對象雁竞。其修飾的對象引用計數(shù)不會增加。無需手動設(shè)置拧额,該對象會自行在內(nèi)存中銷毀碑诉。
  • assign 主要用于修飾基本數(shù)據(jù)類型侥锦,如NSInteger和CGFloat进栽,這些數(shù)值主要存在于棧中。
  • copy copy與strong類似恭垦。不同之處是strong的復(fù)制是多個指針指向同一個地址快毛,而copy的復(fù)制每次會在內(nèi)存中拷貝一份對象,指針指向不同的地址番挺。copy一般用在修飾有可變對應(yīng)類型的不可變對象上唠帝,如NSString、NSArray玄柏、NSDictionary襟衰。
  • weak與assign weak一般用來修飾對象,assign一般用來修飾基本數(shù)據(jù)類型粪摘。原因是assign修飾的對象被釋放后瀑晒,指針的地址依然存在绍坝,造成野指針,在堆上容易造成崩潰苔悦,而在棧上的內(nèi)存系統(tǒng)會自動處理轩褐,不會造成野指針。
  • Objective-C中间坐,基本數(shù)據(jù)類型的默認(rèn)關(guān)鍵字是atomic灾挨、readwrite、assign竹宋;普通屬性的默認(rèn)關(guān)鍵字是atomic劳澄、readwrite、strong蜈七。

淺談—— readwrite秒拔、readonly

  • readwrite (默認(rèn)值):表示其同時擁有g(shù)etter和setter方法
  • readonly:只讀操作,其只有g(shù)etter方法飒硅,沒有setter方法
    注:如果某個實例只允許被外部讀取砂缩,而不能寫入操作,同時在類實現(xiàn)文件當(dāng)中可以寫入的話三娩,可以在頭文件中聲明屬性為只讀的庵芭,在實現(xiàn)文件中設(shè)置其為可讀寫的屬性,寫法如下:
//頭文件中聲明為:
@property(nonatomic,readonly,copy) NSString *stringA;
//實現(xiàn)文件中聲明為:
@property(nonatomic,readwrite,copy) NSString *stringA;

淺談——__weak雀监、__block

  • __weak 和weak基本相同双吆,前者用于修飾變量,后者用于修飾屬性会前。代碼中__weak主要是為防止Block中的循環(huán)引用好乐。
  • __blcok也用于修飾變量,他是引用修飾瓦宜,所以其修飾的值是動態(tài)變化的蔚万,即可以被重新賦值的。__block 用于修飾某些Block內(nèi)部將要修飾的外部變量临庇。
  • __weak 和 __block的使用場景幾乎和Block息息相關(guān)反璃。而所謂Block,就是objective-c對于閉包的實現(xiàn)假夺,閉包就是沒有名字的函數(shù)淮蜈,或者理解為指向函數(shù)的指針。

淺談——atomic侄泽、nonatomic

  • atomic 修飾的對象會保證setter和getter的完整性,任何線程對其訪問都可以得到一個完整的初始化的對象蜻韭,欣慰要保證操作完成悼尾,所以速度慢柿扣,它比nonatomic安全,但并不是絕對的線程安全闺魏,例如多個線程同時調(diào)用set和get就會導(dǎo)致獲得的對象值不一樣未状。想要絕對的線程安全,就要用synchronized析桥。
  • nonatomic修飾的對象不保證setter和getter的完整性司草,所以多個線程訪問,它可能回返回未初始化的對象泡仗。正因為如此埋虹,它比atomic快,但線程也是不安全的娩怎。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末搔课,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子截亦,更是在濱河造成了極大的恐慌爬泥,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件崩瓤,死亡現(xiàn)場離奇詭異袍啡,居然都是意外死亡,警方通過查閱死者的電腦和手機却桶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門境输,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人肾扰,你說我怎么就攤上這事畴嘶。” “怎么了集晚?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵窗悯,是天一觀的道長。 經(jīng)常有香客問我偷拔,道長蒋院,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任莲绰,我火速辦了婚禮欺旧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蛤签。我一直安慰自己辞友,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著称龙,像睡著了一般留拾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鲫尊,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天痴柔,我揣著相機與錄音,去河邊找鬼疫向。 笑死咳蔚,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的搔驼。 我是一名探鬼主播谈火,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼匙奴!你這毒婦竟也來了堆巧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤泼菌,失蹤者是張志新(化名)和其女友劉穎谍肤,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體哗伯,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡荒揣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了焊刹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片系任。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖虐块,靈堂內(nèi)的尸體忽然破棺而出俩滥,到底是詐尸還是另有隱情,我是刑警寧澤贺奠,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布霜旧,位于F島的核電站,受9級特大地震影響儡率,放射性物質(zhì)發(fā)生泄漏挂据。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一儿普、第九天 我趴在偏房一處隱蔽的房頂上張望崎逃。 院中可真熱鬧,春花似錦眉孩、人聲如沸个绍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽巴柿。三九已至错森,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間篮洁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工殃姓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留袁波,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓蜗侈,卻偏偏與公主長得像篷牌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子踏幻,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

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