How can I check the content of the arrays? Parsing XML file with ObjectiveC
        Posted  
        
            by skiria
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by skiria
        
        
        
        Published on 2010-05-07T13:55:09Z
        Indexed on 
            2010/05/07
            13:58 UTC
        
        
        Read the original article
        Hit count: 321
        
I have 3 classes-> video { nameVideo, id, description, user... } topic {nameTopic, topicID, NSMutableArray videos; } category {nameCategory, categoryID, NSMUtableArray topics}
And then in my app delegate I defined-> NSMutableArray categories;
I parse an XML file with this code. I try the arrays hierachy, and i think that i don't add any object on the arrays. How can I check it? What's wrong?
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict { - if([elementName isEqualToString:@"Videos"]) { //Initialize the array. appDelegate.categories = [[NSMutableArray alloc] init]; } - else if ([elementName isEqualToString:@"Category"]) { aCategory = [[Category alloc] init]; - aCategory.categoryID = [[attributeDict objectForKey:@"id"] integerValue]; NSLog(@"Reading id category value: %i", aCategory.categoryID);- } - else if ([elementName isEqualToString:@"Topic"]) { aTopic = [[Topic alloc] init]; - aTopic.topicID = [[attributeDict objectForKey:@"id"] integerValue]; NSLog(@"Reading id topic value: %i", aTopic.topicID);- } - else if ([elementName isEqualToString:@"video"]) { - aVideo = [[Video alloc] init]; aVideo.videoID = [[attributeDict objectForKey:@"id"] integerValue]; aVideo.nameTopic = currentNameTopic; aVideo.nameCategory = currentNameCategory; NSLog(@"Reading id video value: %i", aVideo.videoID);- } - NSLog(@"Processing Element: %@", elementName); } 
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { - if(!currentElementValue) currentElementValue = [[NSMutableString alloc] initWithString:string]; else [currentElementValue appendString:string]; - NSLog(@"Processing Value: %@", currentElementValue); 
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { - if([elementName isEqualToString:@"Videos"]) return; - if ([elementName isEqualToString:@"Category"]) { [appDelegate.categories addObject:aCategory]; [aCategory release]; aCategory = nil; } - if ([elementName isEqualToString:@"Topic"]) { [aCategory.topics addObject:aTopic]; //NSLog(@"contador: %i", [aCategory.topics count]); //NSLog(@"contador: %@", aTopic.nameTopic); - [aTopic release]; aTopic = nil;- } - if ([elementName isEqualToString:@"video"]) { [aTopic.videos addObject:aVideo]; NSLog(@"count number videos: %i", [aTopic.videos count]); --> always 0 NSLog(@"NOM CATEGORIA VIDEO: %@", aVideo.urlVideo); --> OK - [aVideo release]; aVideo = nil;- } - if ([elementName isEqualToString:@"nameCategory"]) { //[aCategory setValue:currentElementValue forKey:elementName]; aCategory.nameCategory = currentElementValue; currentNameCategory = currentElementValue; } - if ([elementName isEqualToString:@"nameTopic"]) { aTopic.nameTopic = currentElementValue; currentNameTopic = currentElementValue; } - else [aVideo setValue:currentElementValue forKey:elementName]; - [currentElementValue release]; currentElementValue = nil; 
}
© Stack Overflow or respective owner