HJ_MLeaksFinder
MLeaksFinder 代码的副本,解决UIalertview 的崩溃问题,由于不知道如何上传到源码中,所以自己复制了一份,如需删除,请及时告知; MLeaksFinder 源码地址: https://github.com/Zepo/MLeaksFinder
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
)
对于上述示例,我们确信 MyTableViewController
、UITableView
和 UITableViewWrapperView
的对象已成功释放,但 MyTableViewCell
的对象没有释放。
禁用断言
如果您的类设计为单例,或者由于某些原因,您的类的对象不应该被释放,请在您的类中重写 - (BOOL)willDealloc
并返回 NO。
- (BOOL)willDealloc {
return NO;
}
在其他对象中查找内存泄露
MLeaksFinder 默认查找 UIView 和 UIViewController 对象中的内存泄露。然而,您可以扩展它以在以 UIViewController 对象为根的全对象图中查找内存泄露。
- (BOOL)willDealloc {
if (![super willDealloc]) {
return NO;
}
MLCheck(self.viewModel);
return YES;
}