何时调用dealloc
方法?是自动调用还是不调用?
如果我写
UIButton *Btn = [UIButton alloc];
[Btn release];
然后调用dealloc
,因为引用计数为零?
如果没有,那么它何时以及如何运作?什么是super
?
当它被调用时,我在dealloc
内发布的所有内容都会被释放吗?例如,假设调用dealloc
,我们会重新定位btn1
和btn2
,但btn2
的引用计数仍然是两个。调用dealloc
时,btn2
是否也被释放,其引用计数为1,还是变为零?
答案 0 :(得分:2)
dealloc
将自动发送给没有更多所有者的对象(即保留它的每个对象,release
d)[super dealloc]
调用超类的dealloc方法(当前对象的父类)。由于Cocoa框架中的几乎每个类至少都是NSObject
的子类,因此该行是正确释放内存所必需的。