【问题标题】:nsarray from plist can't return key valuesplist 中的 nsarray 无法返回键值
【发布时间】:2012-05-14 14:40:08
【问题描述】:

我正在使用以下代码遍历 plist 以查找字符串 然后我想使用键的值 - 分数和数字 不幸的是,有些东西不起作用,我无法弄清楚

任何帮助将不胜感激

    NSString *theNumber = @"0.0075";

    BOOL found = NO;
    NSUInteger f;
    for (f = 0; f < [selectorKeysFractions count]; f++) {
        NSString * stringFromArray = [selectorKeysFractions objectAtIndex:f];
        if ([theNumber isEqualToString:stringFromArray]) {
            found = YES;
            break;
        }
    }
    if ( found ) {

        // do found
        //this line fails with unrecognised selector message          
        NSLog(@"%@",[[selectorKeysFractions objectAtIndex:f]objectForKey:@"fraction"]);

    } else {
        // do not found

    }

我的 plist 数据看起来像这样

<plist version="1.0">
<dict>
<key>fraction</key>
<string>1/128</string>
<key>number</key>
<string>23.78</string>
</dict>
<dict>
<key>fraction</key>
<string>1/234</string>
<key>number</key>
<string>25</string>
</dict>
</plist>

我正在这样设置数组

 NSString *path2 = [[NSBundle mainBundle] pathForResource:@"Fractions" ofType:@"plist"];
 pickerData2 =[[NSDictionary alloc]initWithContentsOfFile:path2];
 selectorKeysFractions = [[NSArray alloc] initWithArray:[pickerData2 allKeys]];

我做错了,但无法弄清楚 请帮忙

谢谢

【问题讨论】:

    标签: objective-c nsarray plist


    【解决方案1】:

    您将消息“objectForKey”发送到 NSString 的对象。您必须请求您的 NSDictionary 才能获得正确的条目。

    检查一下:

    NSLog(@"%@",[pickerData2 objectForKey:[selectorKeysFractions objectAtIndex:f]]);
    

    这应该返回你的字符串。

    【讨论】:

    • 您好 matzino 感谢您的回答。我必须有某种程序员阻止或其他东西,因为我多年来一直在搞砸这个 - 感谢您的帮助:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多