NSUserDefaults没有保存在模拟器中?

时间:2011-05-17 15:39:33

标签: iphone objective-c cocoa-touch ios-simulator nsuserdefaults

我的[NSUserDefaults standardUserDefaults]未被保存。我关闭应用程序并重新启动它的所有内容都会恢复原状。我没有我的iOS设备,所以我不确定这是否会在设备上发生,但其他应用程序都没有在模拟器中这样做,这让我相信我的代码有问题。我不知道我应该在这里包含哪些代码部分,它只是简单地在nsuserdefaults中添加/修改密钥,正如我所说它在应用程序中运行正常,但在重新启动后却没有...

我知道我可以致电synchronize,但Apple建议不要这样做,并说如果必须的话我只能打电话给它。所以。

可能出现什么问题? 感谢。

3 个答案:

答案 0 :(得分:7)

您的进程可能未正确终止,因此NSUserDefaults无法存储。另请参阅this,主要是this

我链接到的第二篇文章中的建议是在synchronize

中致电applicationDidEnterBackground:

请记住,通过在Xcode中停止来终止您的应用通常不会保存用户默认值。

答案 1 :(得分:0)

您是否从Xcode /调试器重新启动?尝试首先使用“主页”按钮将应用程序发送到后台。我认为框架会自动同步。

答案 2 :(得分:0)

我无法理解您的方式,您正在访问NSUserDefault,您使用的sharedDefaults NSUserDefault的静态函数在Apple文档中不存在

使用如下方式访问NSUserDefault

[NSUserDefaults standardUserDefaults];

如需更多阅读使用NSUserDefault的博客文章。

iPhone Programming Tutorial – Saving/Retrieving Data Using NSUserDefaults