Iphone NSUserDefaults未保存在模拟器中?

Iphone NSUserDefaults未保存在模拟器中?,iphone,objective-c,cocoa-touch,ios-simulator,nsuserdefaults,Iphone,Objective C,Cocoa Touch,Ios Simulator,Nsuserdefaults,未保存我的[NSUserDefaults standardUserDefaults]。当我关闭应用程序并再次启动它时,它会恢复。我手头没有我的iOS设备,所以我不确定这是否会发生在设备上,但其他应用程序都没有在模拟器中这样做,这让我相信我的代码有问题。我不知道我应该在这里包含哪部分代码,它只是nsuserdefaults中简单的添加/修改键,正如我所说,它在应用程序期间运行良好,但在我重新启动它之后就不会了 我知道我可以调用synchronize,但苹果建议不要这样做,并说只有在必须的情况下我才

未保存我的
[NSUserDefaults standardUserDefaults]
。当我关闭应用程序并再次启动它时,它会恢复。我手头没有我的iOS设备,所以我不确定这是否会发生在设备上,但其他应用程序都没有在模拟器中这样做,这让我相信我的代码有问题。我不知道我应该在这里包含哪部分代码,它只是nsuserdefaults中简单的添加/修改键,正如我所说,它在应用程序期间运行良好,但在我重新启动它之后就不会了

我知道我可以调用
synchronize
,但苹果建议不要这样做,并说只有在必须的情况下我才应该调用它。所以

出了什么问题?
谢谢。

是否从Xcode/debugger重新启动?尝试先用Home按钮将应用程序发送到后台。我认为框架会自动同步。

您的进程可能被不正确地终止,因此NSUserDefaults没有机会被存储。另请参阅

我链接到的第二篇帖子中的建议是在
applicationidenterbackground:


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

我无法理解您访问
NSUserDefault
的方式,您使用的
sharededefaults
的静态功能在Apple文档中不存在

按如下所示访问
NSUserDefault

[NSUserDefaults standardUserDefaults];
有关更多信息,请阅读有关使用
NSUserDefault
的博客文章


为什么不试着打电话给synchronize看看它是否有效?您还可以检查其返回值是否有错误…您好,我刚才在applicationwillterminate方法中这样做了,但不起作用..:(试着在
ApplicationIdentinterBackground:
,正如我在下面的回答中所建议的那样。更多详细信息请参见:您好,谢谢您的回复,我将它发送到后台,然后双击home按钮并关闭应用程序。然后,当我再次从模拟器启动它时,它崩溃了。但是在XCode中,如果我构建->运行,它不会崩溃,但是我的nsuserdefaults没有保存…嗯,对不起,这就是我的意思。修复了我的问题。@user635064:检查博客教程链接中的NSUserDefaults。我知道如何使用NSUserDefaults。这是一个错误,我没有复制粘贴我的代码,我以为它是sharedDefaults…谢谢你的帮助。Sergio是对的。如果你想在模拟器中保存你的值,请退出后,必须调用
同步