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