// 對(duì)象的內(nèi)存銷毀時(shí)間表
// http://weibo.com/luohanchenyilong/ (微博@iOS程序犭袁)
// https://github.com/ChenYilong
// 根據(jù) WWDC 2011, Session 322 (36分22秒)中發(fā)布的內(nèi)存銷毀時(shí)間表
1. 調(diào)用 -release :引用計(jì)數(shù)變?yōu)榱?/p>
? ? * 對(duì)象正在被銷毀赃额,生命周期即將結(jié)束.
? ? * 不能再有新的 __weak 弱引用入客, 否則將指向 nil.
? ? * 調(diào)用 [self dealloc]
2. 子類 調(diào)用 -dealloc
? ? * 繼承關(guān)系中最底層的子類 在調(diào)用 -dealloc
? ? * 如果是 MRC 代碼 則會(huì)手動(dòng)釋放實(shí)例變量們(iVars)
? ? * 繼承關(guān)系中每一層的父類 都在調(diào)用 -dealloc
3. NSObject 調(diào) -dealloc
? ? * 只做一件事:調(diào)用 Objective-C runtime 中的 object_dispose() 方法
4. 調(diào)用 object_dispose()
? ? * 為 C++ 的實(shí)例變量們(iVars)調(diào)用 destructors
? ? * 為 ARC 狀態(tài)下的 實(shí)例變量們(iVars) 調(diào)用 -release
? ? * 解除所有使用 runtime Associate方法關(guān)聯(lián)的對(duì)象
? ? * 解除所有 __weak 引用
? ? * 調(diào)用 free()