造成內(nèi)存泄漏大致有以下幾種原因
1. CF類型內(nèi)存
注意以creat,copy作為關(guān)鍵字的函數(shù)都是需要釋放內(nèi)存的,注意配對使用。比如:CGColorCreate<-->CGColorRelease
2. MRC內(nèi)存使用
3. ARC導(dǎo)致的循環(huán)引用 block,delegate,NSTimer,CGD 都會(huì)造成循環(huán)引用
項(xiàng)目中遇到的典型內(nèi)存泄漏(本例中是用的是ARC):
圖中標(biāo)記為紅色的1、2 使用在了block中,未添加__weak而造成循環(huán)引用,
而3所示部分使用了CTFontCreateWithName方法導(dǎo)致retain,確沒有相對應(yīng)release進(jìn)行釋放

修改后的代碼如下:增加__weak 和 CFRelease解決循環(huán)引用和retain導(dǎo)致的內(nèi)存泄漏

檢測內(nèi)存泄漏的一篇很好的博客:
http://www.itdecent.cn/p/e9d989c12ff8