Block中內(nèi)存泄露問題

內(nèi)存泄露不僅存在于MRC(MannulReference Counting)中咒精,而且也存在于ARC(Automatic Reference Counting)也存在內(nèi)存泄露問題厢破。

注意:Xcode 4.1及其以前版本沒有ARC

自從我們使用了ARC粉楚,代碼寫起來方便了很多咒劲,我們寫不需要retain,release,dealloc了蜕提,但是有些特殊情況我們需要寫dealloc方法离陶,例如:當(dāng)我們使用 通知 纷宇,KVO的時(shí)候我們需要在dealloc方法中移除觀察者孔飒,這時(shí)候我們不需要寫[super dealloc]寄悯。而在ARC中最常見的內(nèi)存泄露地方之一就是在Block中萤衰。

如果你不打印一下dealloc中的信息,也許你還真的不知道你的controller,view等等資源沒有釋放猜旬。很多問題都可能造成資源不能夠及時(shí)釋放脆栋。其中有一個(gè)很容易忽略的問題,block會自動retain你的變量洒擦。

如果你引用的是一個(gè)實(shí)例變量(如果你對實(shí)例變量不太清楚的可以看看:http://www.lxway.com/482926291.htm)椿争,它會直接對self進(jìn)行retain,這有時(shí)候有可能會產(chǎn)生一個(gè)引用環(huán)(兩個(gè)或以上的對象之間直接或間接地互相引用)并導(dǎo)致內(nèi)存泄露熟嫩。解決的方法是:當(dāng)需要在Block中訪問實(shí)例變量的時(shí)候秦踪,創(chuàng)建一個(gè)指向self的指針,如果在MRC工程中對其使用__block修飾符,而在ARC工程中對其使用__weak修飾符椅邓,這樣self不會被自動retain:

通常來說柠逞,block都是一些簡短代碼片段的封裝,適用做工作單元景馁,通常用來做并發(fā)任務(wù)板壮、遍歷以及回調(diào)。

特別注意:

1合住、block需要注意的一個(gè)特性就是"Variable Capturing"绰精,直譯過來就是捕捉變量。

2透葛、block會將“捕捉”到的變量復(fù)制一份笨使,然后對復(fù)制品進(jìn)行操作,這是非常重要的一點(diǎn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末获洲,一起剝皮案震驚了整個(gè)濱河市阱表,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌贡珊,老刑警劉巖最爬,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異门岔,居然都是意外死亡爱致,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門寒随,熙熙樓的掌柜王于貴愁眉苦臉地迎上來糠悯,“玉大人,你說我怎么就攤上這事妻往』グ” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵讯泣,是天一觀的道長纫普。 經(jīng)常有香客問我,道長好渠,這世上最難降的妖魔是什么昨稼? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮拳锚,結(jié)果婚禮上假栓,老公的妹妹穿的比我還像新娘。我一直安慰自己霍掺,他們只是感情好匾荆,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布拌蜘。 她就那樣靜靜地躺著,像睡著了一般棋凳。 火紅的嫁衣襯著肌膚如雪拦坠。 梳的紋絲不亂的頭發(fā)上连躏,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天剩岳,我揣著相機(jī)與錄音,去河邊找鬼入热。 笑死拍棕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的勺良。 我是一名探鬼主播绰播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼尚困!你這毒婦竟也來了蠢箩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤事甜,失蹤者是張志新(化名)和其女友劉穎谬泌,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逻谦,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡掌实,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了邦马。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贱鼻。...
    茶點(diǎn)故事閱讀 38,100評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖滋将,靈堂內(nèi)的尸體忽然破棺而出邻悬,到底是詐尸還是另有隱情,我是刑警寧澤随闽,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布父丰,位于F島的核電站,受9級特大地震影響橱脸,放射性物質(zhì)發(fā)生泄漏础米。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一添诉、第九天 我趴在偏房一處隱蔽的房頂上張望屁桑。 院中可真熱鬧,春花似錦栏赴、人聲如沸蘑斧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽竖瘾。三九已至沟突,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間捕传,已是汗流浹背惠拭。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留庸论,地道東北人职辅。 一個(gè)月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像聂示,于是被迫代替她去往敵國和親域携。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評論 2 345

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

  • 內(nèi)存管理 簡述OC中內(nèi)存管理機(jī)制鱼喉。與retain配對使用的方法是dealloc還是release秀鞭,為什么?需要與a...
    丶逐漸閱讀 1,948評論 1 16
  • 為什么進(jìn)行內(nèi)存管理扛禽? 由于移動設(shè)備的內(nèi)存極其有限锋边,所以每個(gè)APP所占的內(nèi)存也是有限制的,當(dāng)app所占用的內(nèi)存較多時(shí)...
    天天想念閱讀 888評論 1 7
  • Cocoa內(nèi)存管理機(jī)制 (1)當(dāng)你使用new旋圆、alloc宠默、copy方法創(chuàng)建一個(gè)對象時(shí),該對象的保留計(jì)數(shù)器值為1.當(dāng)...
    John_LS閱讀 2,764評論 0 6
  • Copyright ? 2017年ZaneWangWang. All rights reserved. 如果你看到...
    2897275c8a00閱讀 903評論 0 1
  • iOS內(nèi)存管理 概述 什么是內(nèi)存管理 應(yīng)用程序內(nèi)存管理是在程序運(yùn)行時(shí)分配內(nèi)存(比如創(chuàng)建一個(gè)對象,會增加內(nèi)存占用)與...
    蚊香醬閱讀 5,694評論 8 119