1. 程式人生 > >iOS總結-檢測記憶體洩漏庫-MLeaksFinder原始碼解析

iOS總結-檢測記憶體洩漏庫-MLeaksFinder原始碼解析

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是一個很好的參考。

參考https://www.jianshu.com/p/ccf3014ca6a6