iOS內(nèi)存管理學習筆記一

1陆爽、引用計數(shù)
引用計數(shù)就是當前的對象被多少個其他對象所引用胶逢。這是我自己的理解。
MRC:手動引用計數(shù)俗扇,開發(fā)者自己來計算每一個對象被引用了多少次硝烂,自己進行內(nèi)存的釋放。
ARC:自動引用計數(shù)铜幽,編譯器(xcode)來計算每一個對象的引用次數(shù)滞谢,對象由編譯器來決定什么時候釋放。
進一步說除抛,所謂的ARC就是編譯器幫我們在代碼的合適位置插入了retain和release等MRC需要開發(fā)者手動寫的關(guān)于對象引用計數(shù)的代碼狮杨。
ARC環(huán)境:
1>xcode4.2或以上版本
2>LLVM3.0以上的編譯器
3>編譯器選項中設(shè)置ARC為有效

2、理解引用計數(shù)
舉個簡單的例子(可能不是那么貼切):
假如工作室里只有一盞燈到忽,每個上班的員工上班時間都需要開燈橄教,下班時間都需要關(guān)燈。假如有很多人上下班,最早上班的人A開了燈护蝶,A工作了八個小時下班了华烟,把燈關(guān)掉,這樣的話持灰,沒有下班的其他人都會處在一片黑暗之中垦江。這樣顯然是不合理的,那么該如何解決呢搅方?
解決這一問題是在辦公室至少還有一人的狀態(tài)下保持開燈,在最后一個人離開辦公室的時候關(guān)燈绽族。
我們來捋一下這個過程:
1>第一個進來的人需要照明姨涡,開燈
2>之后進來的人需要照明
3>下班離開辦公室的人不需要照明
4>最后一個離開辦公室的人不需要照明(此時已經(jīng)無人需要照明),關(guān)燈
我們可以使用“引用計數(shù)”來判斷辦公室里是否還有人需要照明吧慢。過程如下:
1>第一個人進來了涛漂,需要照明,引用計數(shù)從0變?yōu)?检诗,要開燈
2>第二個人進來了匈仗,需要照明,引用計數(shù)從1變?yōu)?
3>第一個人離開了逢慌,不需要照明悠轩,引用計數(shù)從2變?yōu)?
4>第二個人離開了,不需要照明攻泼,引用計數(shù)從1變?yōu)?火架,關(guān)燈
總結(jié):只要引用計數(shù)=0,就是關(guān)燈狀態(tài)忙菠,否則就是開燈狀態(tài)何鸡。
在OC中,“對象”就是照明設(shè)備牛欢,那些使用該對象的“環(huán)境”就相當于需要照明的人骡男。
開燈——生成對象(alloc,new傍睹,copy等)
需要照明——持有對象(retain等)
不需要照明——釋放對象(release)
關(guān)燈——廢棄對象(地址被回收隔盛,這個對象煙消云散了)

下面是個人理解的對象生命周期:
Person是一個類

Person * xiaoming = [[Person alloc]init];

這個時候再內(nèi)存中開辟了一塊內(nèi)存空間,并初始化這個對象焰望。引用計數(shù)從0變?yōu)?骚亿,相當于開燈。

image.png
Person * xiaohong = xiaoming;

這時候引用計數(shù)要增加了熊赖。相當于又有人需要照明来屠,引用計數(shù) = 2.

image.png

然后xiaohong在使用完這個對象之后就把對象釋放了。現(xiàn)在引用計數(shù)-1,引用計數(shù)=1

[xiaohong release];
image.png

xiaoming在使用完這個對象的時候也進行了釋放俱笛。相當于不需要照明捆姜,引用計數(shù)-1,引用計數(shù) = 0 .

[xiaoming release];
image.png

這個時候,系統(tǒng)發(fā)現(xiàn)引用計數(shù)已經(jīng)等于0了迎膜,這塊空間需要釋放回收了泥技,回到最初的狀態(tài),于是變成下圖的樣子磕仅。

image.png

在這里簡單說說內(nèi)存泄漏的情形吧珊豹。
內(nèi)存泄漏就是有些地址已經(jīng)不使用了,但是依然有指針指向它導致這塊地址空間不能釋放榕订。如下圖所示:

image.png

這是我自己的理解店茶,如有不妥之處還請各位不吝賜教。如果您看到這篇文章劫恒,對您有一點點的幫助贩幻,將是我最開心的事!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末两嘴,一起剝皮案震驚了整個濱河市丛楚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌憔辫,老刑警劉巖趣些,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異贰您,居然都是意外死亡喧务,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門枉圃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來功茴,“玉大人,你說我怎么就攤上這事孽亲】泊” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵返劲,是天一觀的道長玲昧。 經(jīng)常有香客問我,道長篮绿,這世上最難降的妖魔是什么孵延? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮亲配,結(jié)果婚禮上尘应,老公的妹妹穿的比我還像新娘惶凝。我一直安慰自己,他們只是感情好犬钢,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布苍鲜。 她就那樣靜靜地躺著,像睡著了一般玷犹。 火紅的嫁衣襯著肌膚如雪混滔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天歹颓,我揣著相機與錄音坯屿,去河邊找鬼。 笑死巍扛,一個胖子當著我的面吹牛愿伴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播电湘,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鹅经!你這毒婦竟也來了寂呛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤瘾晃,失蹤者是張志新(化名)和其女友劉穎贷痪,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蹦误,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡劫拢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了强胰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舱沧。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖偶洋,靈堂內(nèi)的尸體忽然破棺而出熟吏,到底是詐尸還是另有隱情,我是刑警寧澤玄窝,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布牵寺,位于F島的核電站,受9級特大地震影響恩脂,放射性物質(zhì)發(fā)生泄漏帽氓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一俩块、第九天 我趴在偏房一處隱蔽的房頂上張望黎休。 院中可真熱鬧浓领,春花似錦、人聲如沸奋渔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屡限。三九已至翰撑,卻和暖如春瓜饥,著一層夾襖步出監(jiān)牢的瞬間球拦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工蟀悦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留浙炼,地道東北人恋拷。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像秩伞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子纱新,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

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

  • 內(nèi)存管理是程序在運行時分配內(nèi)存展氓、使用內(nèi)存,并在程序完成時釋放內(nèi)存的過程脸爱。在Objective-C中遇汞,也被看作是在眾...
    蹲瓜閱讀 3,075評論 1 8
  • 1.1 什么是自動引用計數(shù)#### 顧名思義,自動引用計數(shù)(ARC簿废,Automatic Reference Cou...
    見哥哥長高了閱讀 592評論 0 1
  • 29.理解引用計數(shù) Objective-C語言使用引用計數(shù)來管理內(nèi)存空入,也就是說,每個對象都有個可以遞增或遞減的計數(shù)...
    Code_Ninja閱讀 1,490評論 1 3
  • Objective-C族檬,顧名思義歪赢,是一門超C的語言,自從ARC(Auto Reference Count)出現(xiàn)了之...
    xiao彰閱讀 469評論 0 2
  • 文/添一抹嵐 我叫夏滿点楼,她叫清谷。她是我的表姐白对,只因為她比我大一天掠廓。我農(nóng)歷十月初五出生,她選擇先我一步甩恼,農(nóng)歷十月初...
    添一抹嵐閱讀 708評論 14 8