我的应用程序崩溃了,有什么想法吗?我在我的代码中解析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;
}
答案 0 :(得分:0)
您的对象listItem
属于班级NewsList
。由于您在使用setValue:forKey:
时收到错误,因此此类NewsList
没有名称为elementName
的属性,实例变量为elementName
或_elementName
,或者是setter方法setElementName:
尚未实施
请检查您是否正确设置了酒店,例如使用@property
和@synthesize
。