dealloc何时被调用,它是如何工作的?

时间:2012-05-17 18:44:16

标签: objective-c cocoa

  

可能重复:
  when is the dealloc method called?

何时调用dealloc方法?是自动调用还是不调用?

如果我写

UIButton *Btn = [UIButton alloc];
[Btn release]; 

然后调用dealloc,因为引用计数为零?

如果没有,那么它何时以及如何运作?什么是super

当它被调用时,我在dealloc内发布的所有内容都会被释放吗?例如,假设调用dealloc,我们会重新定位btn1btn2,但btn2的引用计数仍然是两个。调用dealloc时,btn2是否也被释放,其引用计数为1,还是变为零?

1 个答案:

答案 0 :(得分:2)

  • dealloc将自动发送给没有更多所有者的对象(即保留它的每个对象,release d)
  • [super dealloc]调用超类的dealloc方法(当前对象的父类)。由于Cocoa框架中的几乎每个类至少都是NSObject的子类,因此该行是正确释放内存所必需的。