应用程序退出时是否会调用-dealloc方法?

时间:2009-04-27 12:47:05

标签: iphone cocoa-touch memory-management uikit

Apple说,当应用程序退出时,Cocoa -dealloc中不会被调用。这也适用于iPhone吗?

2 个答案:

答案 0 :(得分:3)

我已经使用applicationWillTerminate调用来执行发布(或[自我发布]),然后应该允许dealloc尝试很好地清理

答案 1 :(得分:3)

是的,确实如此。如果应用程序正在退出,在某些情况下,将不会调用dealloc。例如,如果applicationWillTerminate中的任何内容花费太长时间或抛出未捕获的异常,则应用程序将退出而不调用dealloc。

它可能是永远不会在退出时调用dealloc,因为OS无论如何都要进行内存清理。找出最简单,最快捷的解决方案是在主视图控制器的dealloc上放置一个断点,看看是否在应用程序退出时调用它。

我想我记得当我尝试过这次时没有打电话,但我不确定,这就是为什么你应该亲自尝试一下。