NSUnknownKeyException',原因:'[setValue:forUndefinedKey:]

时间:2011-04-25 13:33:17

标签: iphone objective-c xml nsxmlparser

我正在尝试解析xml的标签,但我没有在表视图中检索任何值。相反,应用程序因异常而终止。这是我的代码:

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName 
  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {

    if([elementName isEqualToString:@"Table"]) {
        [appDelegate.books addObject:aBook];
        [aBook release];
        aBook = nil;
    }
    else 
        [aBook setValue:currentElementValue forKey:elementName];//problem is here
        [currentElementValue release];
     currentElementValue = nil;
}

作为委托类的'appdelegate'对象,'Books'是委托类中的可变数组,'aBook'是'Book'类的对象,在xml中具有属性n声明的标记字符串。

帮帮我

这是我的xml文件:

<pre><NewDataSet>
−
<Table>
<id>1</id>
<catname>Birthday</catname>
<iid>1</iid>
<subcatname>card1</subcatname>
−
<url>
http://www.orkutpapa.com/scraps/happy-birthday-card-2-3.jpg
</url>
</Table>
−
<Table>
<id>1</id>
<catname>Birthday</catname>
<iid>2</iid>
<subcatname>card2</subcatname>
−
<url>
http://robertpattinsonwho.com/wp-content/uploads/2009/07/twilight-birthday-card.jpg
</url>
</Table>
−
<Table>
<id>1</id>
<catname>Birthday</catname>
<iid>3</iid>
<subcatname>card3</subcatname>
−
<url>
http://www.funxite.com/media/2373-birthday-card-to-wife.jpg
</url>
</Table>
−
<Table>

</pre>

异常:

  

* 由于未捕获的异常'NSUnknownKeyException'而终止应用程序,原因:'[setValue:forUndefinedKey:]:此类不是密钥iid的密钥值编码兼容。   2011-04-26 10:41:03.388 XML [631:20b] Stack:(

1 个答案:

答案 0 :(得分:1)

尝试这个,它应该工作我也面临同样的问题。如果有整数值,它会崩溃。

[aBook setValue:[NSString stringWithFormat:@"%@",currentElementValue] forKey:elementName];