【发布时间】:2010-04-21 02:02:21
【问题描述】:
我已将 NSLogs 放入我的所有类中,包括我的 UIApplicationDelegate 子类。我很好奇——也有点紧张——为什么当我按下主页按钮时我没有看到它们回响任何东西。我在 XCode 模拟器中运行。
由于 iPhone/iPad 一次运行一个应用程序,所以点击主页按钮不会丢弃正在运行的应用程序的所有痕迹吗?
谢谢,
道格
【问题讨论】:
我已将 NSLogs 放入我的所有类中,包括我的 UIApplicationDelegate 子类。我很好奇——也有点紧张——为什么当我按下主页按钮时我没有看到它们回响任何东西。我在 XCode 模拟器中运行。
由于 iPhone/iPad 一次运行一个应用程序,所以点击主页按钮不会丢弃正在运行的应用程序的所有痕迹吗?
谢谢,
道格
【问题讨论】:
Chuck 是正确的,此时dealloc 无关紧要。如果您想在您的应用即将到期时做某事,请在您的应用委托类中实现:
- (void)applicationWillTerminate:(UIApplication *)application {
// goodbye...
}
【讨论】:
当应用程序终止时,它的内存会被简单地释放。没有调用 Dealloc,它不会通过 go 或收取 200 美元。这是正常的和有意的。
【讨论】:
你应该实现 -(void)applicationWillTerminate:(UIApplication*)application{ } 当用户点击主页按钮时,此方法将被调用。
【讨论】:
您可能还想考虑已宣布的额外多任务支持。显然,细节仍在 NDA 中,但推送 Home 并不一定会停止您的应用。
并考虑一下您的应用可能已经被快速终止的各种情况(例如,如果有来电并且系统内存不足)。使用应用程序生命周期消息进行清理。
【讨论】: