ARC(Automatic Reference Counting),是iOS 5推出的新功能。為了解決MRC管理下的內(nèi)存泄漏,野指針等問題。
ARC雖然不需要手動去調(diào)用retain和release消息,編譯器會自動在合適的位置為我們添加這些代碼,但是ARC還是存在內(nèi)存泄露的。
比如
.循環(huán)參照
A有個屬性參照B,B有個屬性參照A,如果都是strong參照的話,兩個對象都無法釋放,常見于deleage聲明為strong,實際應(yīng)該用assign。還有就是block中使用了當(dāng)前對象,實際應(yīng)該把當(dāng)前對象復(fù)制給一個局部變量然后用__block修飾。
.死循環(huán)問題
比如如果某個ViewController中有無限循環(huán),也會導(dǎo)致即使ViewController對應(yīng)的view關(guān)掉了,ViewController也不能被釋放,這種問題常發(fā)生于animation處理。