当在类中声明属性时使用如下方法时:
@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 导航栏下,方便找到可能出现问题的地方。