iOS dealloc 不被调用的问题


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

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

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

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

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM