编写高质量代码的52个有效方法

52个有效方法(31) - 在dealloc方法中只释放引用并解

2018-09-06  本文已影响17人  SkyMing一C
//ARC模式下的内存管理
- (void)dealloc{
    CFRelease(coreFoundationObject);
    self.xxx = nil;
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}
要点
  1. 在dealloc方法里,应该做的事情就是释放指向其他对象的引用,并取消原来订阅的“键值观测”(KVO)或NSNotificationCenter等通知,不要做其他事情。

  2. 如果对象持有文件描述符等系统资源,那么应该专门编写一个方法来释放此种资源。这样的类要和其他使用约定:用完资源后必须调用close方法。

  3. 执行异步任务的方法不应再dealloc里调用;只能在正常状态下执行的那些方法也不应在dealloc里调用,因为此时对象已处于正在回收的状态了。

上一篇 下一篇

猜你喜欢

热点阅读