HJ_MLeaksFinder 1.0.2

HJ_MLeaksFinder 1.0.2

HJ 维护。



  • HJ

HJ_MLeaksFinder

MLeaksFinder 代码的副本,解决UIalertview 的崩溃问题,由于不知道如何上传到源码中,所以自己复制了一份,如需删除,请及时告知; MLeaksFinder 源码地址: https://github.com/Zepo/MLeaksFinder

中文介绍 | FAQ中文

pod 'HJ_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
)

对于上述示例,我们确信 MyTableViewControllerUITableViewUITableViewWrapperView 的对象已成功释放,但 MyTableViewCell 的对象没有释放。

禁用断言

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

- (BOOL)willDealloc {
    return NO;
}

在其他对象中查找内存泄露

MLeaksFinder 默认查找 UIView 和 UIViewController 对象中的内存泄露。然而,您可以扩展它以在以 UIViewController 对象为根的全对象图中查找内存泄露。

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