0

私は次のコードを使用して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]];

私は何か間違ったことをしていますが、それを理解することができません助けてください

ありがとう

4

1 に答える 1

0

メッセージ「objectForKey」を NSString のオブジェクトに送信します。正しいエントリを取得するには、NSDictionary を要求する必要があります。

これをチェックして:

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

これにより、文字列が返されます。

于 2012-05-14T14:48:27.077 に答える