1

我不明白逻辑:

当我创建一个设置包时,从代码访问时值为零

[[NSUserDefaults standardUserDefaults] stringForKey:@"mykey1"]

但是只要我通过 Settings.app 触摸这个键,我的代码就可以读取这个键。

我发现的解决方案需要读取文件“Root.plist”,从中构建字典、register值和synchronize它们。

我多次阅读 Apple 文档 - 我仍然不理解交付具有一组标准设置的应用程序的想法和标准模式。

对我的学习有什么提示吗?

4

1 回答 1

2

Settings.bundle 的存在对NSUserDefaults. 直到值从其默认值更改后,该值才会反映在NSUserDefaults.

正确的解决方案是使用NSUserDefaults registerDefaults:. 在许多情况下,您会使用Root.plist. 你不需要为此打电话synchronize。每次您的应用程序运行时都会注册默认值。这些值并未实际存储。当您从 请求一个值时NSUserDefaults,如果不存在显式值,则查看注册的默认值以获取值。

您应该在应用程序启动时尽快注册默认值。

于 2013-03-28T23:19:09.010 回答