【问题标题】:NSDictionary is null from setting Bundle in objective CNSDictionary 在目标 C 中设置 Bundle 为空
【发布时间】:2014-01-16 19:41:47
【问题描述】:

我在设置中有文本字段,我可以从中获取值。每当我尝试从 PSMultiValueSpecifier 获取字典时,它总是为空。即使我在设置捆绑中进行选择,它仍然为空,但我可以理解它的 null util 用户进行了选择,但它始终保持为空。

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-               1.0.dtd">
<plist version="1.0">
<dict>
<key>PreferenceSpecifiers</key>
<array>
    <dict>
        <key>Title</key>
        <string>Please Select Orientation</string>
        <key>Type</key>
        <string>PSGroupSpecifier</string>
    </dict>
    <dict>
        <key>Type</key>
        <string>PSToggleSwitchSpecifier</string>
        <key>Title</key>
        <string>Landscape</string>
        <key>Key</key>
        <string>orientationSwitch</string>
        <key>DefaultValue</key>
        <true/>
    </dict>
    <dict>
        <key>Type</key>
        <string>PSGroupSpecifier</string>
        <key>Title</key>
        <string>Select Board</string>
    </dict>
    <dict>
        <key>Type</key>
        <string>PSTextFieldSpecifier</string>
        <key>Title</key>
        <string></string>
        <key>Key</key>
        <string>boardTextField</string>
    </dict>
    <dict>
        <key>Type</key>
        <string>PSMultiValueSpecifier</string>
        <key>Title</key>
        <string>Select Board</string>
        <key>Key</key>
        <string>boardChoice</string>
        <key>DefaultValue</key>
        <string>1</string>
        <key>Titles</key>
        <array>
            <string>Glass</string>
            <string>Welcome</string>
            <string>Mate</string>
        </array>
        <key>Values</key>
        <array>
            <string>0</string>
            <string>1</string>
            <string>2</string>
        </array>
    </dict>
</array>
<key>StringsTable</key>
<string>Root</string>
 </dict>
 </plist>

这就是我获得价值的方式。

 NSDictionary *boardChoice = [defaults dictionaryForKey:@"boardChoice"];
 NSLog(@"board Choice = %@", boardChoice);

谢谢

【问题讨论】:

    标签: ios iphone objective-c settings.bundle


    【解决方案1】:

    “PSMultiValueSpecifier”类型的首选项不会在 用户默认值,但可能的“值”之一。所以

    NSString *boardChoice = [defaults stringForKey:@"boardChoice"];
    

    应该可以工作,在你的情况下应该返回“0”、“1”或“2”。

    【讨论】:

    • 它有效,我在 NSDictionary 上尝试了不同的东西,所以它总是为空。
    • 它应该是 NSString *boardChoice 而不是 NSDictionary *boardChoice。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多