此类不是关键链接的密钥值编码兼容

时间:2013-09-15 19:11:59

标签: iphone ios xml ipad

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

1 个答案:

答案 0 :(得分:0)

您的对象listItem属于班级NewsList。由于您在使用setValue:forKey:时收到错误,因此此类NewsList没有名称为elementName的属性,实例变量为elementName_elementName,或者是setter方法setElementName:尚未实施 请检查您是否正确设置了酒店,例如使用@property@synthesize