0

我的应用程序崩溃了,请问有什么想法吗?我在我的代码中解析 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;
    }
4

1 回答 1

0

您的对象listItem属于 class NewsList。由于您在使用时遇到错误setValue:forKey:,因此该类NewsList要么没有具有名称elementName和实例变量的属性,elementName要么没有实现_elementNamesetter 方法setElementName:
请检查您是否正确设置了属性,例如使用@property@synthesize

于 2013-09-15T19:34:43.790 回答