退出应用程序时dealloc方法是否正常执行?

Vas*_*lis 4 memory-leaks objective-c quit dealloc

当我的应用程序终止时,我使用以下代码(例如我的appController.m内部)进行一些清理...

- (void) dealloc {
    [myObject release]; // myObject 's dealloc will not be called either !!!
    [arraySMSs release];
    [super dealloc];
}
Run Code Online (Sandbox Code Playgroud)

当应用程序退出时,此方法永远不会被调用!为什么?有没有更好的地方来清理?没有调用的事实解决了内存泄漏问题?或者OS确实需要清理?

谢谢...

bbu*_*bum 8

系统没有理由确保在应用程序终止时单独释放每个对象.

这样做只会浪费CPU周期并浪费用户的时间.

当应用程序终止时,系统将以完全自动且不可避免的方式回收该应用程序使用的所有资源.

如果您需要在应用程序终止时发生某些事情,请使用应用程序委托的钩子来执行此操作.但不要依赖于此.用户可能会强制重启设备或强行退出应用程序.