PSMultiValueSpecifier的DefaultValue

时间:2011-04-27 20:03:59

标签: iphone settings.bundle

我有一个iPhone应用程序,我已使用以下设置定义了Settings.bundle:

<dict>
        <key>DefaultValue</key>
        <integer>2</integer>
        <key>Key</key>
        <string>calculationMethod</string>
        <key>Title</key>
        <string>CALCULATION_METHOD</string>
        <key>Titles</key>
        <array>
            <string>Method A</string>
            <string>Method B</string>
            <string>Method C</string>
            <string>Method D</string>
            <string>Method E</string>
            <string>Method F</string>
            <string>Method G</string>
        </array>
        <key>Type</key>
        <string>PSMultiValueSpecifier</string>
        <key>Values</key>
        <array>
            <integer>3</integer>
            <integer>2</integer>
            <integer>5</integer>
            <integer>4</integer>
            <integer>1</integer>
            <integer>6</integer>
            <integer>0</integer>
        </array>
    </dict>

如您所见,我希望默认选择“方法B”,我通过设置DefaultValue来定义。但是,这只选择列表中的“方法B”,但返回的实际值是[settings integerForKey:@“calculationMethod”],它对应于“方法G”。 我忘了这里的东西,或者这不是DefaultValue的工作方式吗?

PS。将选择更改为其他内容然后返回“方法B”后,我得到正确的值。

1 个答案:

答案 0 :(得分:3)

[settings integerForKey:@"calculationMethod"]你的意思并不清楚。如果settingsNSUserDefaults的实例,那么您所看到的确实是预期的行为。 Settings.bundle中的默认值仅控制“设置”应用中为您的应用显示的内容。它们对您在应用运行时从NSUserDefaults加载的偏好完全没有影响。

要在用户默认值中获得相同的默认值,您必须创建第二个包含键(@"calculationMethod")及其在字典中的默认值的plist。当您的应用启动时,请打开此plist文件并将其传递给-[NSUserDefaults registerDefaults:]