不走dealloc的解决办法
当controller不走dealloc说明ARC认为你的controller还处于被持有状态,此时检查可能持有它的对象,过程可能会很痛苦。
容易忽视的地方:
1.NSTimer.
没有及时的invalidate,这样timer持有者controller,导致controller释放不掉
2.delegate
ARC机制下,delegate不需要强引用了,weak就可以了
3.block
weak strong dance一下,世界清净
4.本身被强引用
检查一下该controller是否是作为全局变量push出来的,如果是作为全局变量,那么他的上一级controller持有这该controller,dealloc仍然不会走。即
1[self.navigationController pushViewController:全局controller animated:YES];
以上方法仍然不能找到原因的话也可以用instruments
来查看对象的持有情况。点击这里