第31条:在dealloc方法中只释放引用并解除监听

dealloc方法中主要做什么?主要是释放对象所拥有的引用,也就是把所有的Objective-C对象都释放掉。ARC会通过自动生成的.cxx_destruct方法在dealloc中为你自动添加这些释放代码。对象所拥有得其他非Objective-C对象也要释放。比如CoreFoundation对象就必须手工释放。
在dealloc方法中,通常还要做一件事,那就是吧原来配置过的观测行为(observation behavior)都清理掉。
dealloc方法可以这样写:

  • (void)dealloc
    {//arc模式下
    CFRelease(coreFoundationObject);
    [[NSNotifacationCenter defaultCenter] removeObserver:self] ;
    }
    如果使用手动引用计数而非arc的话,那么最后还需调用 [super dealloc]
    若执行手动管理,则还需要将当前对象所拥有的全部Objective-C对象逐个释放。

在iOS应用程序所对应的application delegate中,都含有一个会于程序终止时调用的方法。如果一定要清理某些对象,那么可在此方法中调用哪些对象的清理方法。
比如:

  • (void)applicationWillTerminate:(UIApplication *)application;

你可能感兴趣的:(第31条:在dealloc方法中只释放引用并解除监听)