MLeaksFinderNew 3.0.0

MLeaksFinderNew 3.0.0

xinxi 维护。



  • Zeposhe

中文介绍 | FAQ 中文

MLeaksFinder

MLeaksFinder 帮助您在开发时找到您的 iOS 应用中的内存泄漏。它可以自动寻找 UIView 和 UIViewController 对象的泄漏,在发生泄漏时,以带有泄漏对象在其视图-视图控制器栈中的警告告知您。 此外,它还可以尝试使用 FBRetainCycleDetector 找到泄漏对象的保留周期。 除了寻找 UIView 和 UIViewController 对象的泄漏外,开发者还可以将其扩展以寻找其他类型对象的泄漏。

通信

QQ 群: 482121244

安装

pod 'MLeaksFinder'

MLeaksFinder 在运行 pod install 后生效,不需要添加任何代码或导入任何头文件。

警告:由于 Facebook 的 BSD-plus-Patents 许可证,FBRetainCycleDetector 已经从 podspec 中移除。如果您想使用 FBRetainCycleDetector 来查找保留周期,请将 pod 'FBRetainCycleDetector' 添加到项目的 Podfile 中,并在 MLeaksFinder.h 中将宏 MEMORY_LEAKS_FINDER_RETAIN_CYCLE_ENABLED 打开。

用法

MLeaksFinder 能够自动寻找 UIView 和 UIViewController 对象中的泄漏。当发生泄漏时,它将在其 View-ViewController 栈中显示一个带有泄漏对象的警告。

Memory Leak
(
    MyTableViewController,
    UITableView,
    UITableViewWrapperView,
    MyTableViewCell
)

对于上面的示例,我们确信《MyTableViewController》、《UITableView》、《UITableViewWrapperView》对象的释放是成功的,但没有释放《MyTableViewCell》对象。

静音断言

如果你的类被设计为单例,或者由于某些原因你的类的对象不应该被释放,请通过返回 NO 重写类中的 `- (BOOL)willDealloc` 方法。

- (BOOL)willDealloc {
    return NO;
}

在其他对象中查找泄漏

MLeaksFinder 默认可以找到 UIView 和 UIViewController 对象中的泄漏。但是,你可以扩展它以在从 UIViewController 对象根部的整个对象图中查找泄漏。

- (BOOL)willDealloc {
    if (![super willDealloc]) {
        return NO;
    }
    
    MLCheck(self.viewModel);
    return YES;
}