iPhone 4:何时保存数据?

时间:2010-06-23 05:35:34

标签: iphone iphone-4

我有一个应用程序(游戏)可以保存数据:游戏状态,高分,成就等。目前,应用程序代表在applicationWillTerminate:上执行此操作。在使用iPhone 4之后,似乎应用程序几乎永远不会终止:它们只是永远在后台运行,除非用户不退路退出或重启手机。

所以我的问题是,我是否应该找到另一个地方来保存我的数据,如果是,那么何时?

4 个答案:

答案 0 :(得分:5)

为了最大限度地减少委托方法调用所花费的时间,您应该找到一个在游戏中保存有意义的地方(完成级别,检查点等)。您还可以向应用程序委托添加新的委托方法,当您的应用程序转换到后台时,将调用该方法,您可以在其中复制先前在applicationWillTerminate:中执行的一些操作。要实施的新委托方法是-applicationDidEnterBackground:

您还会收到一封通知,告知用户已将applicationWillEnterForeground:切换回您的应用。

答案 1 :(得分:2)

您可以在视图中删除委托方法

- (无效)viewDidDisappear:(BOOL)动画

{

//保存代码

}

答案 2 :(得分:2)

您应该保存在applicationDidEnterBackground中。确保用 - beginBackgroundTaskWithExpirationHandler:和endBackgroundTask包装你的保存代码,因为没有它,你会在执行暂停之前少于一秒(或类似的东西)。

答案 3 :(得分:2)

您可以使用2种App委托方法

applicationDidResignActive: //pausing the app, used when a msg comes up. if multitasking this wont help

applicationDidEnterBackground: // called in iOS 4 for when the app is in the background

你可以看到它使用

加载到前台的时间
applicationWillEnterForeground:

查看the reference了解详情