苹果说,在 Cocoa 中,当应用程序退出时,-dealloc 不会被调用。这是否也适用于 iPhone?
问问题
2248 次
2 回答
3
我已经使用applicationWillTerminate调用来执行释放(或 [self release]),然后应该允许 dealloc 尝试很好地清理
于 2009-04-27T13:08:21.610 回答
3
是的,它确实。如果应用程序正在退出,在某些情况下,不会调用 dealloc。例如,如果 applicationWillTerminate 中的任何内容花费太长时间或引发未捕获的异常,则应用程序将退出而不调用 dealloc。
可能它永远不会在退出时调用 dealloc,因为操作系统无论如何都会进行内存清理。找出最简单和最快的解决方案是在主视图控制器的 dealloc 上放置一个断点,看看它是否在应用程序退出时被调用。
我想我记得当我尝试过一次时它没有被调用,但我不确定,这就是为什么你应该自己尝试一下。
于 2009-04-27T13:44:56.933 回答