как получить доступ к конкретному ключевому хранилищу в массиве словарей - PullRequest
1 голос
/ 09 марта 2011

Как получить доступ к одному значению ключа из определенного ключа?

Я использую NSArray NSDictionary с источником plist, как показано ниже;

<plist version="1.0">
<array>
<dict>
    <key>name</key>
    <string>item name</string>
    <key>level</key>
    <integer>3</integer> // range is 1 .. 7
    <key>Stage1</key>
    <string>Text for Stage 1</string>
    <key>Stage2</key>
    <string>Text for Stage 2</string>
    <key>Stage3</key>
    <string>Text for Stage 3</string>
    <key>Stage4</key>
    <string>Text for Stage 4</string>
    <key>Stage5</key>
    <string>Text for Stage 5</string>
    <key>Stage6</key>
    <string>Text for Stage 6</string>
    <key>Stage7</key>
    <string>Text for Stage 7</string>
</dict>
// more dictionaries follow

Я могу просмотреть весь словарь, выполнив следующее:

NSNumber *helps = [myArray objectAtIndex:[pickerView selectedRowInComponent:0]]; 
notesLabel.text = [NSString stringWithFormat:@"%@", helps];

Ваша помощь очень ценится ... Я такой нуб.

Пока, спасибо за помощь! Я смог добавить:

NSDictionary *dictionary = [foodArray objectAtIndex:[pickerView selectedRowInComponent:0]];
notesLabel.text = (@"stage is: %@", [dictionary objectForKey:[NSString stringWithFormat:@"%@", stage]]);

Что дает мне именно то, чего мне не хватало. :)

1 Ответ

0 голосов
/ 09 марта 2011

Проверьте документацию по NSDictionary - специально для "objectForKey:"

NSDictionary *dictionary = [myArray objectAtIndex:[pickerView selectedRowInComponent:0]];
NSLog(@"name: %@", [dictionary objectForKey:@"name"]);
NSLog(@"level: %@", [dictionary objectForKey:@"level"]);
...