NSXMLParser如何将NSMutableDictionary传递给NSMutableArray

我想通过我创buildnsdictionary到nsmutablearray,但我不知道什么时候或如何在nsxmlparser委托做到这一点。

这是我迄今为止所做的

#pragma mark - Parsing lifecycle - (void)startTheParsingProcess:(NSData *)parserData { NSXMLParser *parser = [[NSXMLParser alloc] initWithData:parserData]; //parserData passed to NSXMLParser delegate which starts the parsing process [parser setDelegate:self]; [parser parse]; // starts the event-driven parsing operation. } - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict { if ([elementName isEqualToString:@"item"]) { valueDictionary = [[NSMutableDictionary alloc] init]; } } -(void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock { NSMutableString *dicString = [[NSMutableString alloc] initWithData:CDATABlock encoding:NSUTF8StringEncoding]; currentElement = dicString; } - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { if ([elementName isEqualToString:@"title"]) { titleString = currentElement; [self.valueDictionary setObject:titleString forKey:@"title"]; NSLog(@"%@", [valueDictionary objectForKey:@"title"]); NSLog(@" "); currentElement = nil; } if ([elementName isEqualToString:@"description"]) { descriptionString = currentElement; [self.valueDictionary setObject:descriptionString forKey:@"description"]; NSLog(@"%@", [valueDictionary objectForKey:@"description"]); NSLog(@" "); currentElement = nil; } 

-parser:didEndElement:namespaceURI:qualifiedName: ,监听item元素的结尾,然后将valueDictionary添加到类中的可变数组实例。

 if ([elementName isEqualToString:@"item"]) { [self.mutableArrayOfDictionaries addObject:self.valueDictionary]; } if ([elementName isEqualToString:@"title"]) { titleString = currentElement; [self.valueDictionary setObject:titleString forKey:@"title"]; NSLog(@"%@", [valueDictionary objectForKey:@"title"]); NSLog(@" "); currentElement = nil; } if ([elementName isEqualToString:@"description"]) { descriptionString = currentElement; [self.valueDictionary setObject:descriptionString forKey:@"description"]; NSLog(@"%@", [valueDictionary objectForKey:@"description"]); NSLog(@" "); currentElement = nil; }