iOS 引用循环 retain circle

2017-04-07  本文已影响11人  ReidWang

当在类中声明属性时使用如下方法时:

@interface ExampleClass() {

NSInteger _index

}

如果在接下来某个 block 里调用了 _index 会造成 引用循环,致使 vc 不执行 dealloc 方法;

修改方法 1:直接使用 property 声明属性,

@property (nonatomic, assign) NSInteger index;

总结:

1、在 pop vc 后,在 dealloc 方法内打断点,可以方便的额观察 vc 是否被释放,个人觉得这是一个比较好的编程习惯,如果是对内存管理不是很熟悉的话。

2、发现问题的方法是:在 build setting 里对 IMPLICIT_RETAIN_SELF 设置成 YES,这样会出现在 warn 导航栏下,方便找到可能出现问题的地方。

上一篇 下一篇

猜你喜欢

热点阅读