NSUserDefaults无法在iPhone 4.0设备上运行?

时间:2010-07-20 20:59:25

标签: iphone objective-c

我正在使用NSUserDefaults来保存应用中的数据,当用户离开应用然后返回时,所有值都会恢复。

事情是它确实在应用程序以后台模式运行时保存值。但是当我从多任务关闭应用程序并重新打开它时,应用程序将以新的方式返回,并且没有保存任何值。我添加了方法beginInBackground和applicationWillterminate 但没有任何帮助是他们在新4.0上做到这一点的新方法吗?

PS。我只在设备上测试。我无法使用模拟器,因为我正在使用Map kit。

3 个答案:

答案 0 :(得分:2)

您是否正在调用synchronize方法?

答案 1 :(得分:2)

applicationDidEnterBackground中,只需使用以下代码:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults synchronize];

答案 2 :(得分:0)

您遇到的问题是,由于NSApplicationWillTerminateNotification正在发送,因此您希望在4.0中未发送NSApplicationDidEnterBackgroundNotification。我曾经也有过一样的问题。注册您的存储功能的两个通知,它将再次工作。您不需要条件代码,因为即使您注册了3.0中不存在的通知,也不会在那里调用它,因此不会发生崩溃。

如果您没有使用通知,则还可以覆盖applicationDidEnterBackground:如上面评论中所述。

相关问题