解决循环引用问题系列 - 成员变量访问问题
2017-06-24 13:12
519 查看
项目中遇到的一个比较容易忽略的而且容易导致循环引用的问题,这里记录一下,供大家分享!
项目是一个聊天的SDK,在点击会话进入聊天页面的时候,会懒加载一个名为 sendMessageView 的一个类似发送工具的自定义视图,在这个视图实例化的时候会设置一些事件的监听和默认的基本配置.
然后什么也不做直接返回,发现 ! ! !坑来了...... 产生了循环引用,sendMessageView的dealloc方法没有走, 哦 卖 嘎! 发生了神马 !∑q|゚Д゚|p
好了既然问题出现了,那么就让我们来逐个击破 ! !
1.第一步,我开始找我的 '谷哥' 下载了一个检测内存泄漏的工具,大神编写的 工具地址:点击打开链接
2.第二步, 找来了帮手之后,就开始解决问题,首先检查是否在 block 中使用了self ,检查后发现并没有
3.第三步, 既然没有这种问题,那么就使用比较直接的调试方法 ,注释法! 我的常胜将军 ! ! ! 把那些有怀疑的都给注释掉! 运行! d=====( ̄▽ ̄*)b 成功!疑犯找到了!
4.第四步, 找到疑犯之后,开始足一审问 审问........
5 第五步:疑犯已查出!发布公告! 是 _name 下划线访问变量问题,
项目是一个聊天的SDK,在点击会话进入聊天页面的时候,会懒加载一个名为 sendMessageView 的一个类似发送工具的自定义视图,在这个视图实例化的时候会设置一些事件的监听和默认的基本配置.
然后什么也不做直接返回,发现 ! ! !坑来了...... 产生了循环引用,sendMessageView的dealloc方法没有走, 哦 卖 嘎! 发生了神马 !∑q|゚Д゚|p
好了既然问题出现了,那么就让我们来逐个击破 ! !
1.第一步,我开始找我的 '谷哥' 下载了一个检测内存泄漏的工具,大神编写的 工具地址:点击打开链接
2.第二步, 找来了帮手之后,就开始解决问题,首先检查是否在 block 中使用了self ,检查后发现并没有
3.第三步, 既然没有这种问题,那么就使用比较直接的调试方法 ,注释法! 我的常胜将军 ! ! ! 把那些有怀疑的都给注释掉! 运行! d=====( ̄▽ ̄*)b 成功!疑犯找到了!
4.第四步, 找到疑犯之后,开始足一审问 审问........
5 第五步:疑犯已查出!发布公告! 是 _name 下划线访问变量问题,
相关文章推荐
- JavaScript的闭包问题(闭包解决引用循环变量的问题)
- iOS开发之 成员变量 解决block循环引用方案
- 在使用SSIS设计脚本时候,出现的在PostExecute之外不能锁定变量集合进行读写访问的问题的解决
- 解决 Silverlight 调用 WCF 服务 跨域访问 和 Silverlight 引用服务后配置文件不加载的问题
- 注意访问器中的一个小细节,关于有访问器没有成员变量的问题
- 关于VS2008 中添加成员变量提示 此网站的某个加载项运行失败 请检查“Internet选项”中的安全设置是否存在潜在冲突 问题解决办法
- iOS指南系列:如何解决奔溃问题-关于内存访问
- C++中线程函数中方访问成员变量的问题
- public protected private 成员函数和成员变量在public protected private 继承后访问权限问题
- iOS指南系列:如何解决奔溃问题-关于内存访问续
- iOS指南系列:如何解决奔溃问题-关于内存访问续
- (已解决一部分)哪位对类的构造函数内的成员变量的初始化过程比较熟悉~帮忙看个问题
- 解决 Silverlight 调用 WCF 服务 跨域访问 和 Silverlight 引用服务后配置文件不加载的问题
- 解决Eclipse中Java工程间循环引用而报错的问题
- 采用CXF解决webservice循环引用对象的问题
- 解决使用变量打开窗口,使用窗口名不能引用的问题.
- 解决用户控件循环引用问题
- 解决Eclipse中Project循环引用而报错的问题
- PHP 类的变量与成员,及其继承、访问与重写要注意的问题
- 关于VS2008 中添加成员变量提示 此网站的某个加载项运行失败 请检查“Internet选项”中的安全设置是否存在潜在冲突 问题解决办法