【第22期】观点:IT 行业加班,到底有没有价值?

iOS--造成dealloc不调用的原因

原创 2016年08月30日 11:31:48

1.ViewController中存在NSTimer

[NSTimer scheduledTimerWithTimeInterval:1.0 
                                 target:self 
                          selector:@selector(updateTime:) 
                               userInfo:nil 
                                repeats:YES];

2.ViewController中有关的代理,一个比较隐秘的因素,你去找找与这个类有关的代理,有没有强引用属性?比如一个代理的delegate应该是 assign 的现在是retain

3.ViewController中有Block

Block体内使用实例变量也会造成循环引用,使得拥有这个实例的对象不能释放。
例如你这个类叫OneViewController,有个属性是NSString *name; 如果你在block体中使用了self.name,那样子的话这个类就没法释放。
要解决这个问题,MRC下只需

__block Viewcontroller *weakSelf = self;

ARC下将block 换为 weak
版权声明:欢迎转载! 举报

相关文章推荐

IOS 内存管理

一、前言       对于大多数从C++或者JAVA转过来学习Object-C(以下简称OC)的人来说,OC这门语言看起来非常奇怪,用起来也有点麻烦。       OC没有像JAVA一样的垃圾回收...

(0055)iOS开发之dealloc认识

dealloc: ARC唯一一个留着 dealloc 方法的原因就是, 你需要释放一些不在 ARC 控制下的资源。 例如 Core Foundation 对象中调用 CFRelease()...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

iOS7滑动返回

http://blog.csdn.net/wmqi10/article/details/16850479   <p style="color: #333333; margin-bottom: 0.75em; font-size: 16px; line-height: 2...

iOS中造成dealloc不调用的原因

问题描述最近在一个项目中用到了地图,发现在地图页面和上一个页面间反复切换回出现内存爆增的情况,就像吃了炫迈一样根本停不下来(直到app内存爆表,app闪退收场)。造成这一结果的根本原因是地图的mapV...

iOS开发笔记(IOS7回归)

&lt;---点击左上角目录,可以快速查找这里是否有你遇到的问题条目&lt;--- 1,iOS中如何设置项目/文件是否支持ARC<
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)