私は本当に混乱しているXMLから変換されたNSDictionaryを持っています。あなたが見て、class_idキーのためのオブジェクトを取得するための最良の方法を教えていただけたら、私は本当にそれを感謝します。複合NSDictionary。 Objectforkeysを取得し、それらをNSArrayまたは別々の変数としてソートしますか?
{
response= {
"@status" = ok;
rosters = {
"@page" = 1;
"@page_count" = 1;
"@records_per_page" = 50;
"@total_record_count" = 8;
roster = (
{
"@class_id" = 0001;
"@role" = 0;
"@user_id" = 12345;
class= {
"@active" = false;
"@name" = NAME;
}
}
{
"@class_id" = 0002;
"@role" = 0;
"@user_id" = 12345;
}
{
"@class_id" = 0003;
"@role" = 0;
"@user_id" = 12345;
}
);
}
}
}
私がやりたいと思っていますすべては、個々のCLASS_ID年代の変数を設定したり、NSArrayの中CLASS_ID年代のすべてを置くのいずれかです。私はリンゴのドキュメントを読んでいて、考えられるすべての方法を試しましたが、nsexceptionでクラッシュするか、データを返しません。助けてくれてありがとう。
これで分をバックアップします。これをNSDictionaryに変換するために使用したXMLReaderプラグインは、必要以上に複雑になっているようです。ここにオリジナルのXMLデータがあります。
<response status="ok">
<rosters page_count="1" page="1" records_per_page="50" total_record_count="7">
<roster class_id="0001" role="S" user_id="91563" roster_id="ID"/>
<roster class_id="0002" role="S" user_id="91563" roster_id="ID"/>
<roster class_id="0003" role="S" user_id="91563" roster_id="ID"/>
<roster class_id="0004" role="S" user_id="91563" roster_id="ID"/>
<roster class_id="0005" role="S" user_id="91563" roster_id="ID"/>
<roster class_id="0006" role="S" user_id="91563" roster_id="ID"/>
<roster class_id="0007" role="S" user_id="91563" roster_id="ID"/>
</rosters>
</response>
誰でも簡単な方法でclass_id値を取得することはできますか?それを行うには合理的な方法NSDictionaryに変換されますか?私は別々の変数またはNSArrayとしてデータを必要とします。
残念ながら、キー名の中の '@'文字は、そうでない場合よりも少し痛みを感じます。そうでなければ、これがあなたの辞書であれば、次のようにすることができます: 'NSArray * classIDs = [resposne_dict valueForKeyPath:@" response.rosters.roster.class_id]; '。配列の配列 –
@JasonCoco多分、彼は彼が望むことをするために@文字をエスケープすることができますか?ala NSArray * classIDs = [response_dict valueForKeyPath:@ "response.rosters.roster。\ @ class_id];' ??? –
@MichaelDautermannそれは可能ですが、わかりませんでしたし、それを見ることができなかったので、私はコメントで回答しました。あなたが確認する立場にいるなら、そうすることを提案し、答えを書く;) –