屬性修飾符總結(jié) 什么情況下該用什么

atomic:只能單線程進(jìn)行訪問和修改屬性,性能低(默認(rèn))

nonatomic: 多線程進(jìn)行訪問和修改屬性,性能高

copy:主要用在NSString類型,表示復(fù)制內(nèi)容。一般用于NSString/block

setter:相關(guān)修飾符:assign | retain | copy? 系統(tǒng)默認(rèn)屬性是assign。retain是指針的復(fù)制,copy是內(nèi)容的復(fù)制

assign:用于非指針變量。用于基礎(chǔ)數(shù)據(jù)類型(如NSInteger, CGFloat)和C數(shù)據(jù)類型(int, float, double, char等), 另外還有id類型,基本數(shù)據(jù)類型,結(jié)構(gòu)體、枚舉、(非oc對(duì)象);記?。呵懊娌恍枰樱木陀胊ssign

strong: 這個(gè)屬性特質(zhì)表示一種擁有的關(guān)系,一般用于除了NSString/block之外的oc對(duì)象

weak: 一般用于代理/UI控件,當(dāng)兩個(gè)對(duì)象相互引用(例如控件和控件的代理),一個(gè)用strong, 一個(gè)用weak,避免循環(huán)引用。

聲明block對(duì)象時(shí)首先需要用copy修飾符,另一個(gè)需要注意的問題是關(guān)于線程安全,調(diào)用block時(shí)另一個(gè)線程有可能去修改block時(shí)需要使用atomic,如果確定不會(huì)發(fā)生則使用nonatomic

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,211評(píng)論 30 472
  • 1.屬性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作...
    曾令偉閱讀 1,080評(píng)論 0 10
  • 一、深復(fù)制和淺復(fù)制的區(qū)別? 1、淺復(fù)制:只是復(fù)制了指向?qū)ο蟮闹羔?,即兩個(gè)指針指向同一塊內(nèi)存單元!而不復(fù)制指向?qū)ο蟮?..
    iOS_Alex閱讀 1,424評(píng)論 1 27
  • 青樹qs閱讀 153評(píng)論 0 3
  • 今天想講兩個(gè)人的故事,兩個(gè)不同尋常的人。 尼克·胡哲,患有“海豹肢癥”,天生沒有四肢。不可思議的是﹕騎馬、打鼓、游...
    魯曼啊漫閱讀 275評(píng)論 0 1