ARC下-dealloc方法

ARC下,覆写-dealloc方法:

  • (void)dealloc {

// 移除通知中心的监听
// 移除KVO监听
// 取消定时器,并将定时器置空(nil),NSTimer,GCDTimer
// 释放非Objective-C对象的内存,如CFRelease(...), free(...)
// 释放GCD队列:dispatch_release(_ioQueue);
}

结论:

  1. ARC下,对象的实例变量(不论是否用@property)会被系统自动释放:
    对象的实例变量会在根类[NSObject dealloc]中被系统自动释放,
    因此,ARC下,对象的实例变量无需我们再手动释放。
  2. 实例变量的释放顺序不确定:
    一个类内的实例变量的释放顺序不确定,
    子类和父类之间的实例变量的释放顺序也不确定,
    总之,也就是说不用我们关心实例变量的释放顺序了。
  3. ARC下,在覆写-dealloc方法后,我们不能在其中主动调用[super dealloc]:
    这是因为在运行期,系统会自动在其中调用[super dealloc]。

你可能感兴趣的:(ARC下-dealloc方法)