iOS开发 ARC下造成内存泄露的问题
2015-06-17 15:14
471 查看
新到公司,着手准备跟进项目,但是发现内存越来越大,项目是arc的,于是在某个viewcontroller中加入了dealloc方法打断电,发现viewcontroller果然没有释放,找啊找:
先是把所有的block中用到的self换成了weakself,结果还是不行;
又用instrument看,搞了半天发现这工具还是特么的鸡肋,跟我显示
然后我就不能懂了,去stackoverflow问老外,老外啪啪啪给我解释了一通,原来是个系统库生成的单例,一直不会释放的,叫我不要怪instruments,它是无辜的。。。
然后我只有最笨的办法了,一段一段地删除代码,看什么时候会进入dealloc,找着找着发现这个viewcontroller的superviewcontroller 的superviewcontroller中定义了一个内部全局变量
这个xxxmethord是被GrandfatherViewControllere 的子类superviewcontroller饶了几个弯调用的,而且传入的参数是self。类似的内部变量持有self的问题大概存在两三处,解决掉这个问题之后果然起作用了。dealloc终于被调用了。
先是把所有的block中用到的self换成了weakself,结果还是不行;
又用instrument看,搞了半天发现这工具还是特么的鸡肋,跟我显示
然后我就不能懂了,去stackoverflow问老外,老外啪啪啪给我解释了一通,原来是个系统库生成的单例,一直不会释放的,叫我不要怪instruments,它是无辜的。。。
然后我只有最笨的办法了,一段一段地删除代码,看什么时候会进入dealloc,找着找着发现这个viewcontroller的superviewcontroller 的superviewcontroller中定义了一个内部全局变量
[code]@interface GrandfatherViewController() { id _leftTarget; } @implementation GrandfatherViewController ... -(void) xxxMethord:(id)target{ _leftTarget = target; } ... @end
这个xxxmethord是被GrandfatherViewControllere 的子类superviewcontroller饶了几个弯调用的,而且传入的参数是self。类似的内部变量持有self的问题大概存在两三处,解决掉这个问题之后果然起作用了。dealloc终于被调用了。
相关文章推荐
- iOS App 之间的相互跳转
- Opencv in iOS 1:Testing Canny of Basic FrameWork
- ios各种动画效果
- iOS开发内存管理
- iOS中Foundation框架NSString基本用法总结
- [笔记][html][ios]点击元素有闪烁的解决办法
- iOS原生二维码扫描
- Ios开发必看,苹果粉绝不能错过
- iOS 使用ZBarSDK扫描条形码和二维码
- [iOS学习]NSPredicate
- 【IOS界面布局】横竖屏切换和控件自适应(推荐)
- 解决iOS8.0以上系统下无法通过代码创建被删除过的同名相册 ( iOS 8 Photos framework: Create a albums with iOS8 )
- iOS中获取当前时间和日期并设置格式
- 【iOS官方文档翻译】iOS蓝牙的基本概念
- iOS:json格式字符串转字典,字典转json格式字符串
- iOS开发的一些奇巧淫技3
- iOS开发的一些奇巧淫技2
- iOS开发的一些奇巧淫技 1
- iOS开源库归纳
- iOS 图片大小压缩 图片尺寸处理