iOS循環(huán)引用問(wèn)題

檢測(cè)循環(huán)引用方法

  • 引入開(kāi)源庫(kù)MLeaksFinder
  • 在Dealloc中打log愤惰,判斷是否銷(xiāo)毀
  • Instruments中Leaks查看內(nèi)存泄漏

循環(huán)引用

1.WKWebview 中JS和OC交互痢艺,引起循環(huán)引用

[self.wkWebview.configuration.userContentController addScriptMessageHandler:self name:@"wkWebview"];
這個(gè)代碼中。
self->wkWebview->configuration->userContentController->self
造成循環(huán)引用

需要在viewWillDisapper:中移除scriptMessage座韵。
[self.wkWebview.configuration.userContentController removeScriptMessageHandlerForName:@"wkWebview"];

2.Cell中包含按鈕等點(diǎn)擊事件险绘,用Block來(lái)實(shí)現(xiàn)這個(gè)回調(diào)

image
cell是UITableView的子視圖,每個(gè)子視圖都是被其父試圖的subviews(NSArray*)屬性所強(qiáng)引用誉碴,即:self->tableView->subviews->cell宦棺。而cell因?yàn)榛卣{(diào)強(qiáng)引用了Block內(nèi)部的對(duì)象,形成了循環(huán)引用鏈條黔帕。cell->Block->self代咸。解決的方式是使用弱引用來(lái)傳入Block。

在Cell的Block中不要用方法上的tableView成黄。這樣還是會(huì)造成循環(huán)引用呐芥,應(yīng)該使用self.tableView來(lái)實(shí)現(xiàn)。

3.在單例中不要傳入View奋岁,被強(qiáng)引用思瘟,不能釋放,造成內(nèi)存泄露

4.MLeaksFinderBug,系統(tǒng)控件內(nèi)存泄漏:UIImagePickerController闻伶、UIAlertController

  • 第一種方法
NSObject+MemoryLeak類(lèi)別潮太,
方法+ (NSMutableSet *)classNamesWhitelist中添加白名單。

+ (NSMutableSet *)classNamesWhitelist {
    static NSMutableSet *whitelist = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        whitelist = [NSMutableSet setWithObjects:
                     @"UIFieldEditor", // UIAlertControllerTextField
                     @"UINavigationBar",
                     @"_UIAlertControllerActionView",
                     @"_UIVisualEffectBackdropView",
                     nil];
        
        // System's bug since iOS 10 and not fixed yet up to this ci.
        NSString *systemVersion = [UIDevice currentDevice].systemVersion;
        if ([systemVersion compare:@"10.0" options:NSNumericSearch] != NSOrderedAscending) {
            [whitelist addObject:@"UISwitch"];
        }
        //UIImagePickerController加入白名單虾攻,不報(bào)內(nèi)存泄漏
        if ([systemVersion compare:@"10.0" options:NSNumericSearch] != NSOrderedAscending) {
            [whitelist addObject:@"UIImagePickerController"];
        }
    });
    return whitelist;
}

  • 第二種方法
可以添加相應(yīng)類(lèi)的類(lèi)別,添加白名單來(lái)忽略提示框

------------.h------------

#import <UIKit/UIKit.h>

@interface UIImagePickerController (MemoryLeak)

@end

------------.m------------

#import "UIImagePickerController+MemoryLeak.h"
#import "NSObject+MemoryLeak.h"

@implementation UIImagePickerController (MemoryLeak)

- (BOOL)willDealloc {
    return NO;
}

@end
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末更鲁,一起剝皮案震驚了整個(gè)濱河市霎箍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌澡为,老刑警劉巖漂坏,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異媒至,居然都是意外死亡顶别,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)拒啰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)驯绎,“玉大人,你說(shuō)我怎么就攤上這事谋旦∈JВ” “怎么了屈尼?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)拴孤。 經(jīng)常有香客問(wèn)我脾歧,道長(zhǎng),這世上最難降的妖魔是什么演熟? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任鞭执,我火速辦了婚禮,結(jié)果婚禮上芒粹,老公的妹妹穿的比我還像新娘兄纺。我一直安慰自己,他們只是感情好是辕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布囤热。 她就那樣靜靜地躺著,像睡著了一般获三。 火紅的嫁衣襯著肌膚如雪旁蔼。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,692評(píng)論 1 305
  • 那天疙教,我揣著相機(jī)與錄音棺聊,去河邊找鬼。 笑死贞谓,一個(gè)胖子當(dāng)著我的面吹牛限佩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播裸弦,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼祟同,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了理疙?” 一聲冷哼從身側(cè)響起晕城,我...
    開(kāi)封第一講書(shū)人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蔚润,失蹤者是張志新(化名)和其女友劉穎博其,沒(méi)想到半個(gè)月后型雳,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體软瞎,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窃祝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年紧憾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了稿辙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘱巾。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡授嘀,死狀恐怖物咳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蹄皱,我是刑警寧澤所森,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布囱持,位于F島的核電站,受9級(jí)特大地震影響焕济,放射性物質(zhì)發(fā)生泄漏纷妆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一晴弃、第九天 我趴在偏房一處隱蔽的房頂上張望掩幢。 院中可真熱鬧,春花似錦上鞠、人聲如沸际邻。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)世曾。三九已至,卻和暖如春谴咸,著一層夾襖步出監(jiān)牢的瞬間轮听,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工岭佳, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留血巍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓珊随,卻偏偏與公主長(zhǎng)得像述寡,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子叶洞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

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

  • OC的內(nèi)存管理應(yīng)用了計(jì)數(shù)的方式來(lái)管理內(nèi)存,這種方式雖然很簡(jiǎn)單,但是有一個(gè)比較大的瑕疵,就是它不能很好的解決循環(huán)引用...
    Double丶K閱讀 1,580評(píng)論 0 4
  • 1鲫凶、通過(guò)CocoaPods安裝項(xiàng)目名稱(chēng)項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明先生_X自主閱讀 15,982評(píng)論 3 119
  • 一個(gè)小小的棺槨能容納幾尺靈魂 嘩飛的草紙 燃盡一紙殷紅 你過(guò)往的人生 寂寞落單 一方棺槨 兩個(gè)世界 再也 不能...
    棺非閱讀 209評(píng)論 0 2
  • 今天偶然看到電影《喜劇之王》里那段“我養(yǎng)你呀”的經(jīng)典片段,決定找來(lái)電影再看一遍衩辟。 當(dāng)年掀序,有人說(shuō)這是周星馳的轉(zhuǎn)型之作...
    Unicorn獨(dú)角獸社區(qū)閱讀 669評(píng)論 0 1
  • 從你的全世界路過(guò) 我走在二教的二樓,遇見(jiàn)一個(gè)像協(xié)會(huì)里的同學(xué)惭婿,感覺(jué)好像認(rèn)識(shí),就不住的望了一眼叶雹,隱隱約約好像還是不認(rèn)識(shí)...
    穩(wěn)寧閱讀 192評(píng)論 0 0