【发布时间】:2013-09-15 19:11:58
【问题描述】:
我的应用程序崩溃了,请问有什么想法吗?我在我的代码中解析xml,这里是代码。
如果我删除了这条线,它工作正常 [listItem setValue:currentElementValue forKey:elementName]; 谢谢
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
if ([elementName isEqualToString:@"channel"]) {
NSLog(@"found channel");
app.listArray = [[NSMutableArray alloc]init];
}
else if([elementName isEqualToString:@"item"]){
listItem = [[NewsList alloc] init];
listItem.title = [attributeDict objectForKey:@"title"];
listItem.description = [attributeDict objectForKey:@"description"];
}
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
if (!currentElementValue) {
currentElementValue = [[NSMutableString alloc] initWithString:string];
}
else
[currentElementValue appendString:string];
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if ([elementName isEqualToString:@"channel"]) {
return;
}
if ([elementName isEqualToString:@"item"]) {
[app.listArray addObject:listItem];
listItem = nil;
}
else{
NSLog(@"element name = %@", elementName);
[listItem setValue:currentElementValue forKey:elementName];
}
currentElementValue = nil;
}
【问题讨论】:
-
发帖前请先搜索
-
@trojanfoe,这个问题看起来不同,在我的情况下,我放置了断点,它适用于 4,5 个字段,然后它崩溃了。 NSLog(@"元素名称 = %@", elementName); [listItem setValue:currentElementValue forKey:elementName];我可以看到元素,它多次出现在这里