次の形式のXMLファイルを解析しています。NSDictionaryにNSArraysを追加する
**注:これはXMLの非常に単純化されたバージョンです。そこ11個の部門があり、87個の部門は、私は何を期待していますが、セクションとして課名、および各適切なセクション内の部署名と、のUITableViewにこの情報を表示している
<division>
<name> Sciences </name>
<departments>
<department>
<name> Computer Science </name>
</department>
<department>
<name> Biology </name>
</department>
<department>
<name> Chemistry </name>
</department>
</department>
</division>
合計します。
私はdivisionDictと呼ばれるNSDictionaryを持っています。これは各ディビジョンのNSArraysを保存したいものです。部門を含む。 departmentArrayというNSMutableArrayもあります。このNSMutableArrayには、各部門が含まれています。だから本質的に、私は部署で満たされた部署が必要です。
XMLを解析するためのコードです。完全に機能します。辞書に別々の配列を格納するのに問題があります。それが今解析され、キー "Sciences"で配列の要素を印刷しようとすると、Sciencesだけでなく、すべての部門の部門が印刷されます。
if(node_divisions)
{
node_division = [TBXML childElementNamed:@"division" parentElement:node_divisions];
while (node_division)
{
node_divisionName = [TBXML childElementNamed:@"name" parentElement:node_division];];
node_departments = [TBXML childElementNamed:@"departments" parentElement:node_division];
node_department = [TBXML childElementNamed:@"department" parentElement:node_departments];
divisionName = [TBXML textForElement:node_divisionName];
while(node_department)
{
node_departmentName = [TBXML childElementNamed:@"name" parentElement:node_department];
departmentName = [TBXML textForElement:node_departmentName];
//add the department name to the array
[departmentArray addObject:departmentName];
node_department = node_department->nextSibling;
}
//add the departmentArray to the dictionary, using the division name as the key
[divisionDict setObject:departmentArray forKey:divisionName];;
node_division = node_division->nextSibling;
}
}
ご協力いただきありがとうございます。私はおそらく見逃しているシンプルなことを知っていますが、私はこれを数時間前から見ていて、それを見ることはできません。他の情報が必要な場合は、私に知らせてください、私はすべてを詳細に説明しようとしました。 http://i.stack.imgur.com/a9nSb.png
ありがとうございます!私は毎回新しいアレイを作成する必要があることを知っていましたが、私の頭はとても揚げていました。私は思うことができませんでした.. – RyanG
@ Ryan Garchinsky:あなたが本当に助けてくれたら、あなたは答えを受け入れる間にupvotingの習慣を守ります。 – EmptyStack
divisionArrayを使用している他の場所を確認してください。 stringをdivisionArrayとして割り当てているか、配列が何度も解放されています。たぶん、divisionArrayを作成すると、[NSMutableArray arrayWithCapacity:]のようなものをそのまま使用していますか? –