【问题标题】:When does (void)dealloc get called in an AppDelegate?何时在 AppDelegate 中调用 (void)dealloc?
【发布时间】:2011-03-04 09:51:59
【问题描述】:

我知道实例变量是在dealloc中释放的(如下图),但是具体是什么时候调用的呢?是否在应用关闭时释放所有实例变量,或者是否有一种可接受的方式在它们变得不需要时单独释放它们?

- (void)dealloc {
    [fred release];
    [wilma release];
    [barney release];
    [betty release];
    [super dealloc];
}

【问题讨论】:

标签: iphone objective-c ios dealloc


【解决方案1】:

与任何其他对象一样,应用程序委托将在没有其他对象保留它时被释放。应用程序委托在应用程序终止之前不会一直存在是很不寻常的,正如其他人指出的那样,应用程序可能不会在它退出之前释放和释放任何东西。

我认为,如果应用程序以外的任何对象都没有保留它并且您为应用程序提供了一个新的委托,那么应用程序委托将被释放是一个安全的赌注。除了这种不寻常的情况,应用程序委托的 -dealloc 方法可能根本不会经常被调用。但是,这并不意味着您不应该正确实现它——这是预期的行为,并且在未来的 iOS 版本中很容易发生变化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 2018-09-04
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多