多值类型设置捆绑字段总是返回null

mle*_*s54 7 iphone web-applications settings.bundle

首次启动应用程序时,我在从设置包中检索默认值时遇到问题.所有非多值字段都会正确返回默认值.所有多值字段都返回NULL.我用来检索当前值的代码:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *upt=[defaults objectForKey:@"upthreshold"];
Run Code Online (Sandbox Code Playgroud)

Root.plist的相关部分是:

                <dict>
                    <key>Title</key>
                    <string>Update Threshold</string>
                    <key>Type</key>
                    <string>PSMultiValueSpecifier</string>
                    <key>Key</key>
                    <string>upthreshold</string>
                    <key>DefaultValue</key>
                    <string>15</string>
                    <key>Titles</key>
                    <array>
                            <string>2 km</string>
                            <string>5 km</string>
                            <string>10 km</string>
                            <string>15 km</string>
                            <string>25 km</string>
                            <string>50 km</string>
                            <string>75 km</string>
                            <string>100 km</string>
                            <string>150 km</string>
                            <string>250 km</string>
                            <string>500 km</string>
                            <string>1000 km</string>
                    </array>
                    <key>Values</key>
                    <array>
                            <string>2</string>
                            <string>5</string>
                            <string>10</string>
                            <string>15</string>
                            <string>25</string>
                            <string>50</string>
                            <string>75</string>
                            <string>100</string>
                            <string>150</string>
                            <string>250</string>
                            <string>500</string>
                            <string>1000</string>
                    </array>
            </dict>
Run Code Online (Sandbox Code Playgroud)

我希望"15"将作为当前值返回,因为它被设置为默认值.Multivalue字段是否需要一些不同的处理?正如我之前所说,在此之前有6个字段正确返回它们的值.此字段和以下2个多值字段不会.多值字段都定义相同.

Mat*_*uch 21

如果用户未在设置应用中更改该值,则不进行任何设置.设置包中指定的默认值仅为设置应用中显示的默认值

你必须手动注册你的默认值.NSUserdefaults不使用设置包中的默认值.
使用类似的东西,在应用程序的开头添加它(在访问userdefaults之前).
注册的用户默认不会保存到磁盘或任何其他内容.每次启动应用程序时都必须注册它们.

NSDictionary *userDefaultsDefaults = [NSDictionary dictionaryWithObjectsAndKeys:
                                      @"15", @"upthreshold",
                                      nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:userDefaultsDefaults];
Run Code Online (Sandbox Code Playgroud)