2011-12-19 13 views
0

私はインターフェイスにしようとしている第三者のアプリケーションによって生成されたIOSのplistを持っている、したがって私はplistの形式を変更することはできません。私に困っているのは、辞書の配列であるcardList配列です。私はplistをNSMutableDictionaryに問題なくロードし、cardListとcolorLabelList配列を 'ダンプ'できます。サードパーティのplistからネストされた辞書を取得する最も良い方法は何ですか?

最初の質問:Item配列の各メンバーにアクセスする最も良い方法は何ですか?すなわち、ドラフト、ラベルなどを、リスト内の各カードについて使用する。

2番目の質問:私の「NSMutableDictionaryへのロード」アプローチは最良の選択ですか?ここで

はplistのレイアウトです:唯一のあなたが実際にそうでない場合は、標準NSDictionaryのを(これはスタイルの事の多い使用し、データを変更しようとしている場合

cardlist Array 
    item 0 Dictionary 
    draft boolean 
    label string 
    notes string 
    ... 
    item 1 Dictionary 
    draft 
    label 
    notes 
    ... 
name  string 
sortOrder number 

答えて

0

使用NSMutableDictionary、実際の実装はしていません本当に変わる)。

あなたはcardlist配列を順番にしたい場合は、次の手順を実行します。あなたのcardlist配列のすべてを通過し、値を印刷する必要があります

//This will enumerate through the array element by element 
for (NSMutableDictionary *dictionary in cardlist) { 
    //Ok, now we have a dictionary from cardlist 
    //Let's print the items to the console 
    NSLog(@"draft: %i", [dictionary valueForKey:@"draft"]); //Note, there are better ways print print a bool to the log, but this will work for now 
    NSLog(@"label: %@", [dictionary valueForKey:@"label"]); 
    NSLog(@"notes: %@", [dictionary valueForKey:@"notes"]); 

} 

+0

ありがとう、私はNSMutableDictionaryの部分について理解しています。当然、この後に起こるマスターディテールがあります。タイトルはマスターであり、残りのレコードはディテールです。 私は定義されたクラスにレコードをロードする方が良いかもしれません。 これはリストを順番に調べる最も早い方法ですか?もう一度やってみましょう。 –

+0

問題ありません。その答えが助けられたら、その質問の横にあるチェックマークをクリックしてそれを受け入れてください。コレクションの列挙の詳細については、ドキュメントをご覧ください。http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Collections/Articles/Enumerators.html#//apple_ref/doc/ uid/20000135-BBCFABCB – sosborn

関連する問題