iOS開發(fā)之OC中的內(nèi)存泄漏

造成內(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容