美文网首页
内存泄漏问题排查

内存泄漏问题排查

作者: xiao小马哥 | 来源:发表于2018-05-16 14:41 被阅读21次

    最近有时间,对项目做一下整体的内存泄漏排查,使用的框架是MLeaksFinder
    使用起来非常的方便,直接pod 一下就好了,在操作过程中,那个控制器没有销毁,会弹出一个alert,提示你是哪个控制器或者view 没有销毁

    image.png

    剩下的就是自己一步步排查,排查思路,主要的循环引用都出现在block中,

    image.png

    这样使用变量会导致循环引用,解决办法

    image.png

    这样就解决这个循环引用了
    私有成员变量在block如何避免循环引用

    至于原因请看oc block 中直接引用成员变量 循环引用

    原因是oc是动态语言,实例变量的地址可能被其他实例变量占用,直接引用的话容易出问题。

    retain self的好处是当类的定义变了,其存储的偏移量也变了,偏移量会在运行时查找,这样的话无论何时访问总能得到正确的地址,甚至可以在运行时新增变量。

    相关文章

      网友评论

          本文标题:内存泄漏问题排查

          本文链接:https://www.haomeiwen.com/subject/locpdftx.html