iOS 8.2 Settings.bundle默认值

时间:2015-03-20 10:07:50

标签: xcode ios8.2

我有一个带有Settings.bundle文件的应用程序。 我在特定字段中添加了一个默认值,但每当我想在iOS 8.2上的应用程序中读取它时,我就会得到“nil”。背部。 但是,当我在iOS 7.1(基本上是iOS 8.2以下的每个版本)上执行此操作时,我得到了正确的默认值。

有没有人知道iOS 8.2中是否有更改导致此问题以及如何解决此问题?我已经删除了应用并重新构建了。 也许是一个小小的注释,我用Xcode 5构建。但是如果我使用Xcode 5或Xcode 6,这并没有任何区别。经测试。

代码: 我如何检索默认值:

id settings = [NSUserDefaults standardUserDefaults];
[settings objectForKey:@"defaultValueUrl"];

Settings.bundle: http://i62.tinypic.com/10nrmhd.png

谢谢!

1 个答案:

答案 0 :(得分:4)

在用户实际转到“设置”并进行更改之前,“设置”捆绑包中的默认值不会写入应用的NSUserDefaults。一直都是如此。不确定为什么它之前为你“工作” - 也许你从来没有从设备上卸载应用程序并且它保留旧设置?

您应该在代码中执行的操作是在启动时注册默认设置。 (是的,这有点重复你的设置包中发生的事情。这就是生活。)

[[NUSUserDefaults standardDefaults] registerDefaults:
@{ @"defaultValueURL": @"http://example.com" }];

现在,此默认密钥将始终具有正确的默认值,包含或不包含“设置”包。

Read this post for more info.