保存一致的NSUserDefaults

时间:2012-07-16 14:12:23

标签: iphone ios xcode

所以在我的应用程序中,我在NSUserDefaults中保存了一些整数键,大约至少20个。

这样的东西,但很多:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setInteger:1 forKey:@"game1"];
[prefs setInteger:1 forKey:@"game2"];
[prefs setInteger:1 forKey:@"game3"];

所以我只是想知道,我打电话

[[NSUserDefaults standardUserDefaults] synchronize];

每次我保存?

因为有时我遇到了我正在保存的整数的不一致,并且已经加载了停止,在xCode中运行应用程序或从主页按钮加载。

我在网站上阅读了几篇文章:

在iOS4中,按主页按钮时可能无法保存用户默认值。在[[NSUserDefaults standardUserDefaults] synchronize]中手动调用applicationDidEnterBackground:可确保您的User Defaults被正确保存。

在iOS5中这是真的吗?或者有更准确的方法,更短的保存整数的方法。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

Apple的文档说明了这一点:

“因为此方法是定期自动调用的,所以只有在您不能等待自动同步时(例如,如果您的应用程序即将退出)或者您想要将用户默认值更新为什么,才使用此方法即使你没有做任何改动,也在磁盘上。“

因此,根据您设置的数据的紧急程度,您可能不需要调用同步。完整文档为here

答案 1 :(得分:0)

当您在setInteger:forKey:上致电prefs时,它不需要,它会自动保存。