dealloc 中的每一行都會有一個錯誤。 咱們再也不被容許調用 [release] 了, 也不容許調用 [super dealloc]。 由於咱們在 dealloc 再也不作任何操做了, 因此咱們能夠直接把這個方法刪除掉。css
惟一一個留着 dealloc 方法的緣由就是, 你須要釋放一些不在 ARC 控制下的資源。 例如 Core Foundation 對象中調用 CFRelease(), 對那些經過 malloc() 分配的內存調用 free(), 註銷通知,中止 Tiner, 等等。url
若是你是一個對象的代理的話,有時必須顯式的斷開和它的鏈接,但一般這都是自動的。 大部分狀況下,代理都是弱引用(避免循環引用), 當一個即將被釋放的對象是其餘對象的代理的話, 當這個對象被銷燬時,代理指針將會被自動設置爲 nil。 弱指針在這以後會被自動清楚。代理
另外, 在你的 dealloc 方法中, 你仍然可使用實例變量, 由於他們在這時候還沒被釋放掉。 在 dealloc 返回以前,都不會被釋放。指針