在iOS中,無(wú)論是ARC還是手動(dòng)管理內(nèi)容方式都是采用引用計(jì)數(shù)的內(nèi)存管理方式。
這里有幾個(gè)ARC的基本原則:
1隆豹、強(qiáng)引用指向的對(duì)象不會(huì)被釋放。
2茅逮、一個(gè)對(duì)象沒(méi)有強(qiáng)引用且在AutoreleasePool drain時(shí)會(huì)立刻釋放璃赡。
3、弱引用指向的對(duì)象將要釋放時(shí)自動(dòng)為空献雅。
下面簡(jiǎn)單介紹一下 碉考,內(nèi)存泄漏產(chǎn)生的原因,以及解決的方案挺身。
1 Block循環(huán)引用
總結(jié)一句話防止Block循環(huán)引用就是要防止對(duì)象之間引用的閉環(huán)出現(xiàn)
2 delegate循環(huán)引用問(wèn)題
delegate循環(huán)引用問(wèn)題比較基礎(chǔ)侯谁,只需要注意將代理屬性修飾為weak即可。
@property (nonatomic ,weak) id delegate;
3? NSTimer循環(huán)引用
4 大次數(shù)循環(huán)內(nèi)存暴漲問(wèn)題 (使用自己創(chuàng)建的autoReleasePool可以解決該問(wèn)題)