Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 设置包。。。为什么可以';我的代码是否通过[NSUserDefaults standardUserDefaults]访问这些值?_Iphone_Ios_Nsuserdefaults_Settings.bundle - Fatal编程技术网

Iphone 设置包。。。为什么可以';我的代码是否通过[NSUserDefaults standardUserDefaults]访问这些值?

Iphone 设置包。。。为什么可以';我的代码是否通过[NSUserDefaults standardUserDefaults]访问这些值?,iphone,ios,nsuserdefaults,settings.bundle,Iphone,Ios,Nsuserdefaults,Settings.bundle,我不明白其中的逻辑: 当我创建设置包时,通过代码访问时,值为零 [[NSUserDefaults standardUserDefaults] stringForKey:@"mykey1"] 但只要我通过Settings.app触摸此键,我的代码就会读取此键 我找到的解决方案需要读取文件“Root.plist”,从中构建一个字典,注册值并同步它们 我读了很多次苹果文档——我仍然不理解交付一个带有一组标准设置的应用程序的想法和标准模式 对我的研究有什么提示吗?Settings.bundle的存在对

我不明白其中的逻辑:

当我创建设置包时,通过代码访问时,值为零

[[NSUserDefaults standardUserDefaults] stringForKey:@"mykey1"]
但只要我通过Settings.app触摸此键,我的代码就会读取此键

我找到的解决方案需要读取文件“Root.plist”,从中构建一个字典,
注册
值并
同步
它们

我读了很多次苹果文档——我仍然不理解交付一个带有一组标准设置的应用程序的想法和标准模式


对我的研究有什么提示吗?

Settings.bundle的存在对
NSUserDefaults
没有任何影响。直到某个值从默认值更改后,该值才会反映在
NSUserDefaults

正确的解决方案是使用
NSUserDefaults registerDefaults:
。在许多情况下,加载默认字典时包含
Root.plist
的内容。您不需要为此调用
synchronize
。每次应用程序运行时都会注册默认值。这些值并没有实际存储。当您从
NSUserDefaults
请求值时,如果不存在显式值,则会查看注册的默认值以查找值


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

谢谢!我仍然感到困惑:为什么苹果至少不提供应用程序使用Settings.bundle作为默认设置的选项?是否有此任务的标准实现?我见过一对夫妇,他们看起来不一样,有什么建议吗?