我有一个保存数据的应用程序(游戏):游戏状态、高分、成绩等。目前,应用程序代表在applicationWillTerminate:上执行此操作。在玩了一段时间的iPhone 4之后,似乎应用程序几乎永远不会终止:它们只会永远在后台运行,除非用户特意退出它们,或者重新启动手机。
所以我的问题是,我是否应该找到另一个地方来保存我的数据,如果是的话,什么时候?
发布于 2010-06-23 13:49:09
为了最大限度地减少花费在委托方法调用上的时间,你应该在游戏期间找到一个有意义的地方来保存(关卡完成,检查点等)。您还可以将新的委托方法添加到您的应用程序委托中,当您的应用程序转换到后台时,将调用该委托方法,在那里您可以复制以前在applicationWillTerminate:中所做的一些事情。要实现的新委托方法是-applicationDidEnterBackground:。
您还会收到用户切换回您的应用程序作为applicationWillEnterForeground:的通知。
发布于 2010-06-23 13:41:29
您可以在视图中执行此操作。
-(空)viewDidDisappear:(BOOL)动画
{
//保存代码
}
发布于 2010-06-23 13:47:43
您应该保存在applicationDidEnterBackground中。确保用- beginBackgroundTaskWithExpirationHandler:和endBackgroundTask包装您的保存代码,因为如果没有它,在执行挂起之前,您只有不到一秒钟的时间(或类似的时间)。
https://stackoverflow.com/questions/3099159
复制相似问题