ARC下,覆写-dealloc方法:
- (void)dealloc {
// 移除通知中心的监听
// 移除KVO监听
// 取消定时器,并将定时器置空(nil),NSTimer,GCDTimer
// 释放非Objective-C对象的内存,如CFRelease(...), free(...)
// 释放GCD队列:dispatch_release(_ioQueue);
}
结论:
- ARC下,对象的实例变量(不论是否用@property)会被系统自动释放:
对象的实例变量会在根类[NSObject dealloc]中被系统自动释放,
因此,ARC下,对象的实例变量无需我们再手动释放。 - 实例变量的释放顺序不确定:
一个类内的实例变量的释放顺序不确定,
子类和父类之间的实例变量的释放顺序也不确定,
总之,也就是说不用我们关心实例变量的释放顺序了。 - ARC下,在覆写-dealloc方法后,我们不能在其中主动调用[super dealloc]:
这是因为在运行期,系统会自动在其中调用[super dealloc]。