iOS總結-檢測記憶體洩漏庫-MLeaksFinder原始碼解析
阿新 • • 發佈:2018-12-19
MLeaksFinder是WeRead團隊開源的一款檢測iOS記憶體洩漏的AOP框架。
優點:無侵入性 可以構建洩漏堆疊 有白名單機制 擴充套件性 其他一些特殊處理
主要涉及到的是基類NSObject+MemoryLeak.h類別裡面,- (BOOL)willDealloc方法
-assertNotDealloc方法是列印記憶體洩漏方法名
有關MLeakedObjectProxy類的兩個協議方法
最後通過-willReleaseChild和-willReleaseChildren 來實現堆疊資訊的獲取
UIApplication/UINavigationController/UIPageViewController/UISplitViewController/UITabbarController/UIViewController/UITouch/UIView + MemoerLeak 的擴充套件類別,都是利用Method Swizzling來實現的,我們也可以繼續擴充套件。
其實這是庫是典型的AOP,完全實現了無侵入性,解構業務程式碼,為我們去開發其他的AOP是一個很好的參考。