How can I check the content of the arrays? Parsing XML file with ObjectiveC
- by skiria
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;
}