美文网首页
内存泄漏解决问题系列 - 成员变量访问问题

内存泄漏解决问题系列 - 成员变量访问问题

作者: SeaGragon_iOS | 来源:发表于2017-06-24 13:19 被阅读0次

项目中遇到的一个比较容易忽略的而且容易导致循环引用的问题,这里记录一下,供大家分享!

项目是一个聊天的SDK,在点击会话进入聊天页面的时候,会懒加载一个名为 sendMessageView 的一个类似发送工具的自定义视图,在这个视图实例化的时候会设置一些事件的监听和默认的基本配置.

然后什么也不做直接返回,发现 ! ! !坑来了...... 产生了循环引用,sendMessageView的dealloc方法没有走, 哦 卖 嘎! 发生了神马 !∑q|゚Д゚|p

好了既然问题出现了,那么就让我们来逐个击破 ! !

1.第一步,我开始找我的 '谷哥'  下载了一个检测内存泄漏的工具,大神编写的 工具地址:点击打开链接

2.第二步, 找来了帮手之后,就开始解决问题,首先检查是否在 block 中使用了self  ,检查后发现并没有

3.第三步, 既然没有这种问题,那么就使用比较直接的调试方法 ,注释法! 我的常胜将军 ! ! ! 把那些有怀疑的都给注释掉! 运行!  d=====( ̄▽ ̄*)b 成功!疑犯找到了!

4.第四步, 找到疑犯之后,开始足一审问 审问........

5 第五步:疑犯已查出!发布公告!  是 _name 下划线访问变量问题, 😆 修改成self. 点语法

总结:下划线访问变量,和点语法有什么区别呢? 看这个文章:点击打开链接

好了,大功告成 ! ! ! 😑

相关文章

  • 内存泄漏解决问题系列 - 成员变量访问问题

    项目中遇到的一个比较容易忽略的而且容易导致循环引用的问题,这里记录一下,供大家分享! 项目是一个聊天的SDK,在点...

  • Block 和 成员变量

    前言 优化项目时检查到内存泄漏问题,是在 Block 中使用成员变量不当引起的。 问题 ViewControlle...

  • 闭包

    闭包:外层函数能够访问内层变量的函数,缺点就是容易造成内存泄漏。

  • 内存泄漏检测工具Valgrind与OpenCV搭配使用

    内存泄漏的含义 关于”内存泄漏“,有两种定义: 程序结束时,有指针变量ptr能访问到申请的堆内存,但没通过free...

  • 【Android】内存泄漏—static成员变量

    (1)static内存泄漏 1、static修饰的成员变量的生命周期和整个应用程序的生命周期一致2、例如stati...

  • 2020-06-19this与super

    关键字访问成员变量访问构造方法访问成员方法thisthis.成员变量:访问本类的成员变量this(...):访问本...

  • python内存泄漏怎么办?填坑排查小技巧

    摘要:最近工作遇到了内存泄漏问题,运维同学紧急呼叫解决,于是在解决问题之余也系统记录了下内存泄漏问题的常见解决思路...

  • 2018-09-25

    内存泄漏 定位内存泄漏菱形继承红包随机成员函数 delete thislua jit编译

  • Volatile 关键字

    Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时...

  • Java transient关键字

    Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,...

网友评论

      本文标题:内存泄漏解决问题系列 - 成员变量访问问题

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