Iphone 加载应用程序时NSUserDefaults出现了一些奇怪的情况

Iphone 加载应用程序时NSUserDefaults出现了一些奇怪的情况,iphone,ios,nsuserdefaults,ios5,Iphone,Ios,Nsuserdefaults,Ios5,我有一个应用程序,使用了几个不同的用户默认值,需要在应用程序加载后立即使用。其中之一负责将地图视图放大到用户位置 我遇到的问题是,当我加载用户默认值时,它似乎认为它们是空的,直到我通过设置应用程序更改它们 这里发生了什么?我使用的是iOS5,不确定这是否对它有任何影响。这真的很烦人,因为我的应用程序依赖于加载时数据可用 注意:在我更改/重新选择settings(设置)视图中的值后,它完全可以正常工作。在设置值后,请确保您的呼叫synchronize: [[NSUserDefaults stand

我有一个应用程序,使用了几个不同的用户默认值,需要在应用程序加载后立即使用。其中之一负责将地图视图放大到用户位置

我遇到的问题是,当我加载用户默认值时,它似乎认为它们是空的,直到我通过设置应用程序更改它们

这里发生了什么?我使用的是iOS5,不确定这是否对它有任何影响。这真的很烦人,因为我的应用程序依赖于加载时数据可用


注意:在我更改/重新选择settings(设置)视图中的值后,它完全可以正常工作。

在设置值后,请确保您的呼叫
synchronize

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"someKey"];
[[NSUserDefaults standardUserDefaults] synchronize];

编辑以回答评论:

-registerDefaults:
的文档中:

注册域的内容未写入磁盘每次应用程序启动时都需要调用此方法。您可以将plist文件放在应用程序的Resources目录中,并使用从该文件读入的内容调用registerDefaults:

因此,在
-applicationdFinishLaunching:
中,您可以注册
Root.plist
默认值,如下所示:

[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Root" ofType:@"plist"]]];

问题更多地发生在我第一次加载应用程序时。例如,假设我刚刚安装了它,所以我还没有选择任何设置。这是一个没有选择我在根目录中设置的默认值的问题。plist@JonW09随时)。很乐意帮忙。