dealloc 中的每一行都会有一个错误。 咱们再也不被容许调用 [release] 了, 也不容许调用 [super dealloc]。 由于咱们在 dealloc 再也不作任何操做了, 因此咱们能够直接把这个方法删除掉。css
惟一一个留着 dealloc 方法的缘由就是, 你须要释放一些不在 ARC 控制下的资源。 例如 Core Foundation 对象中调用 CFRelease(), 对那些经过 malloc() 分配的内存调用 free(), 注销通知,中止 Tiner, 等等。url
若是你是一个对象的代理的话,有时必须显式的断开和它的链接,但一般这都是自动的。 大部分状况下,代理都是弱引用(避免循环引用), 当一个即将被释放的对象是其余对象的代理的话, 当这个对象被销毁时,代理指针将会被自动设置为 nil。 弱指针在这以后会被自动清楚。代理
另外, 在你的 dealloc 方法中, 你仍然可使用实例变量, 由于他们在这时候还没被释放掉。 在 dealloc 返回以前,都不会被释放。指针