Цель C, Использование правильной части plist и циклический просмотр данных - PullRequest
0 голосов
/ 08 июля 2011

еще один забавный (и, вероятно, действительно простой) вопрос для вас, я наполовину проработал и теперь зашел в тупик ...

Мне нужно построить индексированную таблицу, используя данные из списка, которыйвыглядит примерно так:

<?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>Categories</key>
    <array>
        <dict>
            <key>CategoryName</key>
            <string>Test Category</string>
            <key>CategoryID</key>
            <integer>10</integer>
            <key>Sections</key>
            <dict>
                <key>A</key>
                <array>
                    <string>A Jones</string>
                    <string>A King</string>
                </array>
                <key>T</key>
                <array>
                    <string>T Jones</string>
                    <string>T King</string>
                </array>
            </dict>
        </dict>
        <dict>
            <key>CategoryName</key>
            <string>Another Test Category</string>
            <key>CategoryID</key>
            <integer>20</integer>
            <key>Sections</key>
            <dict>
                <key>P</key>
                <array>
                    <string>P Jones</string>
                    <string>P King</string>
                </array>
                <key>S</key>
                <array>
                    <string>S Jones</string>
                    <string>S King</string>
                </array>
            </dict>
        </dict>
    </array>
</dict>

Итак, мне нужна помощь, как получить людей в каждом разделе в зависимости от требуемого CategoryID.Я думаю, что главная проблема для меня заключается в том, как мне определить, из какого CategoryID извлекать информацию (т. Е. Я знаю CategoryID, но как мне соотнести это с правильным разделом), а затем как выполнить цикл по каждому ключу раздела (, б, в и т. д.) когда ключом является название раздела (имеет ли это смысл?).

Любая помощь и мысли очень ценятся!Спасибо!

1 Ответ

2 голосов
/ 08 июля 2011
NSDictionary *myDictionary = //load your dictionary from the file here
NSArray *categoryArray = [myDictionary objectForKey:@"Categories"];

NSDictionary *neededCategory;
for (NSDictionary *category in categoryArray) {
     NSNumber *categoryID = (NSNumber *)[category objectForKey @"CategoryID"];
     if ([categoryID intValue] == neededCategoryID) {
          neededCategory = category;
          break;
     }
}

//Sections
NSDictionary *sections = [neededCategory objectForKey:@"Sections"];
NSArray *allSectionKeys = [sections allKeys];

for (NSString *key in allSectionKeys) {
   NSArray *name = [sections objectForKey:key];
   //Do something with the name here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...