2011-07-08 11 views
0

あなたのために別の楽しい(おそらく本当に簡単な)質問があり、私は半分の仕事をして今や行き詰まってしまった...目的C、plistの正しい部分を使用してデータを取得するためにループ

私はこのようになりますplistのデータを使用してインデックス付きのテーブルを構築する必要があります

<?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を決定するのですか(CategoryIDを知っていますが、どのようにこれを正しいセクションに関連付けるのですか)。 、b、cなど。)キーがセクションの名前である場合(意味がありますか?)

ご協力いただきありがとうございます。ありがとう!

答えて

2
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 
} 
+0

素晴らしいこと – rich

関連する問題