Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone AppDelegate中何时调用(void)dealloc?_Iphone_Objective C_Ios_Dealloc - Fatal编程技术网

Iphone AppDelegate中何时调用(void)dealloc?

Iphone AppDelegate中何时调用(void)dealloc?,iphone,objective-c,ios,dealloc,Iphone,Objective C,Ios,Dealloc,我知道实例变量是在dealloc中发布的(如下所示),但它确切的调用时间是什么时候?是否所有实例变量都是在应用程序关闭时释放的,或者是否有一种可接受的方式在它们不再需要时单独释放它们 - (void)dealloc { [fred release]; [wilma release]; [barney release]; [betty release]; [super dealloc]; } 与任何其他对象一样,当没有其他对象保留应用程序委托时,应用程序委

我知道实例变量是在
dealloc
中发布的(如下所示),但它确切的调用时间是什么时候?是否所有实例变量都是在应用程序关闭时释放的,或者是否有一种可接受的方式在它们不再需要时单独释放它们

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

与任何其他对象一样,当没有其他对象保留应用程序委托时,应用程序委托将被解除分配。在应用程序终止之前,应用程序委托不会一直存在,这是非常罕见的。正如其他人所指出的,应用程序可能不会在退出之前发布和释放任何东西


我认为,如果除应用程序之外没有其他对象保留应用程序委托,并且您为应用程序提供了一个新委托,那么应用程序委托将被解除分配,这是一个安全的赌注。除了这种不寻常的情况之外,app委托的-dealoc方法可能根本不会经常被调用。然而,这并不意味着你不应该正确地实现它——这是预期的行为,在未来的iOS版本中,事情可能会很容易发生变化。

可能是重复的感谢,@Vladimir,但我对它是否被调用不太感兴趣,而是知道它被调用的具体时间。很清楚,你忘记了
[super dealoc]
在方法的末尾,)@Eimantas-更正。谢谢。