iOS app检测内存泄露工具

  • 名称 MLeaksFinder,下载地址https://github.com/Tencent/MLeaksFinder
  • 用法:直接pod install 安装成功后无需任何操作,在app运行过程中,当一个控制器页面pop时没有正常销毁,控制台则打印
Possibly Memory Leak.
In case that  xxxViewController should not be dealloced, override -willDealloc in POQOpinionVC by returning NO.
View-ViewController stack: (
    xxxViewController
)

界面则显示
iOS app检测内存泄露工具_第1张图片
image.png

然后根据提示去所在的控制器中排查可能出现的循环引用,比如:block 里 没有用 weak self,或者block内不可以直接用 _variable(下划线成员变量),用weak self 的get方法去访问

  • 为什么UIView的animation block 和 AF的block不需要考虑循环引用呢?
  • UIView的block是一个类方法,当前对象没有对类进行强引用,所以不会形成循环
  • AF在执行方法的时候,当前对象同样也没有对AF的manager对象进行引用。

如果想去掉提示,在出问题的控制器内添加方法

- (BOOL)willDealloc {
    return NO;
}

the end.

你可能感兴趣的:(iOS app检测内存泄露工具)