IOS 關(guān)于Property心得與總結(jié)

property在IOS開發(fā)中占據(jù)了非常重要的位置偶洋,作為OC的一項特性版保,主要的作用是用來封裝和操作對象的數(shù)據(jù)博烂。那么property的本質(zhì)是什么证逻?

首先我們需要知道property的組成部分乐埠,它是由一個實例變量(ivar),以及存取方法(getter和setter)組成的囚企。換句話說property就是通過set方法對實例變量進(jìn)行寫入變量值丈咐,通過get方法讀取實例變量的變量值。當(dāng)我們使用property來定義一個對象的時候龙宏,系統(tǒng)會自動按照其給定的命名規(guī)范自動創(chuàng)建一套存取方法.

例如:

@interface student:NSObject

@property (nonatomic棵逊,copy)NSString * name;

@property ?(nonatomic, copy ) NSString * age;

@end;

以上是通過property來定義兩個字符串,其等效于:

@interface student:NSObject

{

NSString * name;

}

@end银酗;

#import "student.h"

@implementation student

- (void)setName:(NSString *)newName ?

{

name ?= newName;

}

-(NSString *)name?

{

return name;

}

由此可以看出實際上property就是為實例變量自動添加set和get方法的操作辆影,一般property會和synthesize一起使用,可以將property理解為給實例變量命名的關(guān)鍵字黍特,比如

@implementation student

@synthesize name = _myName;

這樣我們就將實例變量name命名為_myName蛙讥,如果沒有使用@synthesize,則系統(tǒng)默認(rèn)將實例變量添加一個下劃線灭衷,比如_name;

既然說到property次慢,肯定離不開幾種修飾符的使用

在使用property關(guān)鍵字定義屬性時,會用到幾種不同的修飾符

readwrite和readonly翔曲,當(dāng)使用readwrite時迫像,會自動生成set和get方法,是一種可讀可寫的狀態(tài)瞳遍,這是一種默認(rèn)的屬性闻妓。如果我們不希望在外部改變此變量的值,可以用readonly修飾掠械,這個時候指只會生成get方法由缆。

retain注祖、copy、assing犁功、weak以及strong

先來說說retain氓轰,使用retain修飾變量,會先釋放掉舊的對象浸卦,然后將久對象的值賦予輸入對象署鸡,然后將輸入對象的引用計數(shù)提升為1;也就是說實際上源對象和輸入對象指向的都是相同的內(nèi)容限嫌,可以理解成retain實際上是一個淺復(fù)制靴庆,復(fù)制的只是一個指向相同內(nèi)容的指針。

copy和retain不同怒医,copy是一個深復(fù)制炉抒,完全復(fù)制了一個新的對象,此對象引用計數(shù)為1稚叹,有自己獨立的內(nèi)存地址焰薄。一般當(dāng)我們在修飾OC中NSString,NSArray等自身還包含可變類型的類的時候扒袖,我們需要用copy來修飾塞茅,因為要避免當(dāng)NSString的值來源于他的可變的子類的時候,其值也很跟隨改變季率。詳情可見

www.reibang.com/writer#/notebooks/10310036/notes/9620077

而strong在ARC中基本和retain使用情況相同野瘦,但是要注意的是,在修飾可變的類型時飒泻,比如NSMutableArray我們又不能使用copy來修飾了鞭光,原因是如果我們將可變的類型copy一份,那么copy的那一份就變成了一個不可變的類型泞遗,但是這個時候又找不到原來的一些關(guān)于其可變類型的實例方法惰许,就會報錯,詳情也可以參考上面的鏈接史辙。

weak和assign的用法基本相同都是簡單的賦值汹买,不改變引用計數(shù)。區(qū)別在于weak必須是oc對象髓霞。并weak屬于歸零弱引用卦睹,當(dāng)對象被銷毀之后指針置nil畦戒。在需要放置循環(huán)引用的時候方库,通過一端采用weak來解決。

最后再說說nonatomic和atomic

基本上大家都知道atomic代表線程安全障斋,不過在一些情況下同樣也無法保證其安全纵潦,比如一個線程在連續(xù)多次讀取某個屬性值的過程中有別的線程在同時改寫該值徐鹤,那么即便將屬性聲明為atomic,也還是會讀取到不同的屬性值邀层。而且使用atomic對內(nèi)存的開銷很大返敬,所以基本上我們都會使用nonatomic。如果對原子和非原子的具體區(qū)別感興趣的可以參考一下

www.douban.com/note/486901956/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末寥院,一起剝皮案震驚了整個濱河市劲赠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌秸谢,老刑警劉巖凛澎,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異估蹄,居然都是意外死亡塑煎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進(jìn)店門臭蚁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來最铁,“玉大人,你說我怎么就攤上這事垮兑±湮荆” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵甥角,是天一觀的道長网严。 經(jīng)常有香客問我,道長嗤无,這世上最難降的妖魔是什么震束? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮当犯,結(jié)果婚禮上垢村,老公的妹妹穿的比我還像新娘。我一直安慰自己嚎卫,他們只是感情好嘉栓,可當(dāng)我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著拓诸,像睡著了一般侵佃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上奠支,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天馋辈,我揣著相機(jī)與錄音,去河邊找鬼倍谜。 笑死迈螟,一個胖子當(dāng)著我的面吹牛叉抡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播答毫,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼褥民,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了洗搂?” 一聲冷哼從身側(cè)響起消返,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎耘拇,沒想到半個月后侦副,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡驼鞭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年秦驯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挣棕。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡译隘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出洛心,到底是詐尸還是另有隱情固耘,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布词身,位于F島的核電站厅目,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏法严。R本人自食惡果不足惜损敷,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望深啤。 院中可真熱鬧拗馒,春花似錦、人聲如沸溯街。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呈昔。三九已至挥等,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間堤尾,已是汗流浹背肝劲。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留哀峻,地道東北人涡相。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像剩蟀,于是被迫代替她去往敵國和親催蝗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,860評論 2 361

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

  • 分享【高效演講】 演講結(jié)構(gòu)——比喻 用鮮活的形象打動觀眾 恰當(dāng)?shù)谋热缒茏屄牨娍匆娨桓闭Z言圖畫育特,透過這幅圖畫丙号, 聽眾...
    知筑文化閱讀 495評論 0 1
  • 如果現(xiàn)在沒有了網(wǎng)絡(luò)埋哟?會怎樣谓娃? 不可想象绍刮,我們每天使用的QQ贾富,微信雕崩,百度锋喜,知乎落萎,瀏覽器等等等等钓丰,除了面對面的交流時迷郑,...
    有空就看書寫字閱讀 250評論 0 0