2009-09-03 11 views
0

こんにちはすべて私はいくつかのXMLデータを解析するためにNSXMLParserを使用しています。 私はこのデータを使ってTree表現を作成し、ドリルダウン可能な階層を作成しています。なぜ私の辞書の子供たちはいっぱいです

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName 
    namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName 
attributes:(NSDictionary *)attributeDict { 

if([elementName isEqualToString:@"exercises"]) { 
    //init tree 
    appDelegate.Tree = [NSMutableDictionary new]; 
    appDelegate.Rows = [NSMutableArray new]; 
    [appDelegate.Tree setObject:appDelegate.Rows forKey:@"Rows"]; 
    ... 

は今私のxmlの要素メニュー項目が読み取られている場合、それは

if([elementName isEqualToString:@"menuitem"]) { 


    appDelegate.theChildren = [NSMutableArray new]; 
    [appDelegate.menu_item setObject:appDelegate.theChildren forKey:@"Children"]; 

を初期化し、MENU_ITEM辞書にtheChildrenを追加しますこれは、すべての計画に従って起こっています。

しかし、次のように私はそれが行きたい方法を行っていません。 別のタグ(workout_mob)が表示されたら、theChildrenを塗りつぶしてください。これは下部辞書項目でのみ発生します。それは、少なくとも私のアイテム私はそれがそれらの両方のためになぜちょうど下のいずれかに子供に配列を追加することだ意味の両方を満たしていない理由

http://img188.imageshack.us/img188/7052/picture4efx.png

if([elementName isEqualToString:@"workout_mob"]) { 

    appDelegate.work_out_mob = [NSMutableDictionary new]; 


    [appDelegate.theChildren addObject:appDelegate.work_out_mob]; 

は誰でもについての手掛かりを持っています残り。私はそうのように私のXMLコード内の別のxmllineを追加する場合:

<menu_mob> 
    <menuitem id="1" text="Press this for exercises" pic="workout" /> 
    <menuitem id="2" text="VirtuaGym online" pic="online" /> 
        *<menuitem id="3" text="the Added Line" pic="online" />* 
</menu_mob> 

それは下メニュー項目へのすべての子供たちのアイテムを追加します(別の辞書項目を想像(3))。 なぜですか?

答えて

0

MMm私の配列をリセットしていたようです;)問題が解決しました。

関連する問題