-2

可能重复:
何时调用 dealloc 方法?

dealloc什么时候调用该方法?是自动调用还是不调用?

如果我写

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

那么dealloc现在被调用是因为引用计数为零?

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

当它被调用时,我释放的所有内容都dealloc被释放了吗?例如,假设dealloc被调用,我们realese btn1and btn2,但是btn2的引用计数仍然是两个。当dealloc被调用时,它btn2也被释放并且它的引用计数为 1,还是变为零?

4

1 回答 1

2
  • dealloc将自动发送到没有更多所有者的对象(即保留它的每个对象,released it)
  • [super dealloc]调用超类(当前对象的父类)的 dealloc 方法。由于 Cocoa 框架中的几乎每个类都至少从 子类化NSObject,因此这一行对于适当的内存释放是必要的。
于 2012-05-17T18:48:54.180 回答