Web サーバーから JSON オブジェクトを取得するアプリを作成しています。これは、辞書を含む辞書です。これを解析すると、辞書と配列の両方としてすべてが必要になります。これは、TableView を動的に入力するために両方objectForKey
を使用する必要があるためです。objectAtIndex
その一部は次のようになります。
NSMutableArray *roomsArray = projectDict[@"rooms"];
NSMutableDictionary *roomDict = roomsArray[indexPath.row];
NSMutableArray *tasksArray = roomDict[@"tasks"];
NSMutableDictionary *task = tasksArray[indexPath.row];
NSString *status = [task objectForKey:@"status"];
objectAtIndex
インデックスを取得するには配列が必要なのでindexPath.row
しかし、テーブルビューで自分をクリックするとUISwitch
、変更する taskStatus が必要になります。
しかし、それは「うまくいかない」のでできません。
だから、私はする必要があります:
TOP ディクショナリ (projectDict) を取得し、1 行で (配列とディクテーションを下に移動せずに) taskStatus を置き換えます。
これは、コンソールに出力された JSON 形式の私の projectDict です。
projects = (
{
address = "Fugledammen 8";
city = "S\U00f8borg";
completedTasks = 0;
done = 0;
dueDate = "07/11-2013";
id = 8;
rooms = (
{
id = 9;
name = Loftet;
tasks = (
{
id = 5;
name = doSomething;
status = 0;
}
);
},
{
id = 10;
name = "v\U00e6relse 1";
tasks = (
{
id = 6;
name = doSomething;
status = 0;
}
);
}
);
totalTasks = 2;
zip = 2860;
},
{
address = "Lygten 37";
city = "K\U00f8benhavn N";
completedTasks = 0;
done = 0;
dueDate = "06/11-2013";
id = 6;
rooms = (
{
id = 2;
name = Toilet;
tasks = (
);
},
{
id = 3;
name = Kantine;
tasks = (
{
id = 2;
name = "S\U00e6tte nyt k\U00f8kken op";
status = 0;
},
{
id = 3;
name = "Ops\U00e6tte ny kaffemaskine";
status = 0;
}
);
},
{
id = 4;
name = "L\U00e6rev\U00e6relse";
tasks = (
{
id = 4;
name = "Ops\U00e6tte ny tavle";
status = 0;
}
);
}
);
totalTasks = 3;
zip = "";
},
{
address = "Tranedalen 2";
city = "Ish\U00f8j";
completedTasks = 0;
done = 0;
dueDate = "06/11-2013";
id = 5;
rooms = (
{
id = 1;
name = "K\U00f8kken";
tasks = (
);
},
{
id = 5;
name = "Badev\U00e6relse";
tasks = (
);
},
{
id = 8;
name = "Sovev\U00e6relse";
tasks = (
);
}
);
totalTasks = 0;
zip = 2635;
},
{
address = "L\U00e6rkens Kvt 30c";
city = Albertslund;
completedTasks = 1;
done = 0;
dueDate = "11/11-2013";
id = 9;
rooms = (
{
id = 11;
name = "k\U00f8kken";
tasks = (
{
id = 7;
name = "lav kaffe";
status = 1;
}
);
}
);
totalTasks = 1;
zip = 2620;
},
{
address = "S\U00f8gade 2";
city = "K\U00f8benhavn K";
completedTasks = 0;
done = 0;
dueDate = "13/11-2013";
id = 10;
rooms = (
);
totalTasks = 0;
zip = 1717;
}
);
}