iphone - 在 dealloc 中调用 super 是否重要?

标签 iphone objective-c cocoa cocoa-touch memory

- (void)dealloc {
    [super dealloc];
    [receivedData release]; receivedData = nil;
}

- (void)dealloc {
    [receivedData release]; receivedData = nil;
    [super dealloc];
}

最佳答案

是的,它在调用 [super dealloc] 时绝对重要。一旦 [super dealloc] 被调用,你就不能再依赖 NSObject(或任何你的根类)机制来正常运行。毕竟,您的父类(super class)的 -dealloc 方法应该调用它的父类(super class)等,直到调用根类的 -dealloc 方法。到那时,这些类分配来完成其工作的所有内容都可能消失,如果您尝试使用其中任何一个,您将处于未定义的领域。

你的 -dealloc 方法应该总是看起来像

- (void)dealloc
{
   // release my own stuff first

   [super dealloc];
}

关于iphone - 在 dealloc 中调用 super 是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3523576/

相关文章:

iphone - 如何降级 Xcode?

ios - 在图像选择器 iOS 中调整编辑矩形的大小

iphone - 我可以在 iPhone 应用程序上将 OpenglES 与标准 Cocoa 小部件混合使用吗?

objective-c - 如何控制NSNumberFormatter的科学风格?

ios - viewWillAppear ext 的 JASidePanels 委托(delegate)未被调用

objective-c - 如何在Cocoa模型中从更深层次高效地获取所有实例?

iphone - 将发布发送到 UIViewControllers 的 NSArray?

iphone - 在 "off"状态改变 UISwitch 的颜色

javascript - PhoneGap 只使用 UIWebVIew 还是做更多的事情?硝基?

ios - iOS 的屏幕截图