第五章:內(nèi)存管理
29. 什么是ARC:對象被引用的次數(shù)澜倦。
30. ARC 下可以用“靜態(tài)分析器”查找內(nèi)存泄漏問題
31. 在dealloc 里面只釋放引用和解除監(jiān)聽
執(zhí)行異步的方法不應(yīng)該在dealloc里面執(zhí)行,因為此時對象已經(jīng)處于回收狀態(tài)了
32. 編寫異常安全代碼時注意內(nèi)存問題:try-catch-finally
33. 以弱引用來避免保留環(huán)
unsafe_unretained 相當(dāng)于assgin ,聲明表示屬性可能不安全赴邻,系統(tǒng)回收后郊闯,在其上調(diào)用方法可能使程序崩潰。
區(qū)別在于前者修飾對象類型牡昆,后者assgin 修飾基本類型
weak 和上述內(nèi)存語義相同周霉,不同的是對象被回收后掂器,會自動置為nil,這是一個安全的特性。
34. 用自動釋放池@autoreleasePool降低內(nèi)存峰值
35. 用僵尸對象調(diào)試程序:scheme->
36. 不要使用retainCount:無用的方法
ARC已經(jīng)廢棄俱箱,不能使用国瓮,即使再MRC下也是不準確的,只代表某個時間點上的值狞谱,并未考慮系統(tǒng)稍后會把自動釋放池清空后的狀態(tài)乃摹;另外可能永遠都不會返回0,比如系統(tǒng)會優(yōu)化對象的釋放行為跟衅,在等于1的時候就回收了