私はXMLフィードから取得してNSDictionariesとして解析するこのデータを持っています。データ構造は、このようなものです:Objective-C for inループネストNSDictionaries
item = {
address = {
text = "1 Union Street";
};
data = {
text = "Hello.";
};
event_date = {
text = "2012-02-27";
};
event_type = {
text = pubQuiz;
};
latitude = {
text = "57.144994";
};
longitude = {
text = "-2.10143170000003";
};
name = {
text = "Mobile Tester";
};
picture = {
text = "public://pictures/event_default.png";
};
time = {
text = "23.00";
};
vname = {
text = Test;
};
}
//More items
各サブセクション、すなわち、アドレス、データ、EVENT_DATEなどはすべてNSDictonariesです。
コレクション全体を繰り返し、各セクション内の「テキスト」を取得して、これらのプロパティを持つ「アイテム」の配列を作成したいとします。私はObjective-Cのfor..inループ構造を使ってみましたが、これまでのところ成功していませんでした。誰かがいくつかのポインタを持っていますか?ネストされたNSDictionariesをどのようにトラバースするかについての良いチュートリアルや例を読んでいただければ幸いです。
EDIT:
よしそうでは、XMLを解析した後、私はそこにその構造を取得します。私は何をしたいのは、すべての内部辞書の「テキスト」フィールドを抽出するための「アイテム」構造を横断ある - このような何か:
foreach(item in array of dictionaries) {
myItem.address = item.address.text;
myItem.data = item.data.text;
...
}
のように。私はこれでこれが少し明確になることを願っています。
私が立ち往生している部分は、NSDictionariesを走査しながら項目のプロパティを設定する場所です。これは私がこれまで持っているものです。
出力for(NSDictionary *item in self.eventsArray) {
for (NSDictionary *key in [item allKeys]) {
NSLog(@"%@", key);
id value = [item objectForKey:key];
if ([value isKindOfClass:[NSDictionary class]]) {
NSDictionary* newDict = (NSDictionary*)value;
for (NSString *subKey in [newDict allKeys]) {
NSLog(@"%@", [newDict objectForKey:subKey]);
}
}
}
}
:
アドレス 1ユニオンストリート データ こんにちは。 ...
必要なプロパティを設定するために作成しているオブジェクトで適切な属性を選択する方法がわかりません。
重複していますか? http://stackoverflow.com/questions/3320511/how-to-iterate-nested-dictionaries-in-objective-c-iphone-sdk – Almo
各項目が何かを持つことが可能なので、ちょうど興味深い辞書の辞書ですテキスト以外? – Joe
あなたが望む出力の説明はあいまいです。どのように見えるかの例を提示する必要があります。 – yuji