iOS dealloc 不被调用的问题

最近项目中老是无缘无故的出现一下奔溃。查看一下堆栈信息,指针的指向都有,但还是奔溃。所以第一个怀疑出现野指针引起的问题。然后调试代码中的一下dealloc函数。好多对象在释放之后都没掉用。顿时吓出一身冷汗。经过一番查找。主要总结了3点
1、类中用了NSTimerh或调用了perfomSelector函数。当对象要销毁前。先要暂停NSTimer 或 

  [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(test:) object:nil];

2、Block问题。这里复制一段代码。

3、类中用了其他了类做属性时。要用assign,而不是strong,这一点隐藏得比较深。

这个superView 是外面传进来的。相当于代理。用strong的话会造成引用计数加1.

 

posted @ 2017-01-04 14:39  哎呦我去_zq  阅读(2480)  评论(0编辑  收藏  举报