NSUnknownKeyException ', причина:' [setValue: forUndefinedKey:] - PullRequest
0 голосов
/ 25 апреля 2011

Я пытаюсь проанализировать теги 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» с объявленным свойством nстроки для тега в XML.

помогите мне

вот мой XML-файл:

<code><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>

исключение:

* Завершение работы приложения из-за необработанного исключения «NSUnknownKeyException», причина: «[setValue: forUndefinedKey:]: этот класс не соответствует значению ключа, соответствующему кодированию для ключа iid.»2011-04-26 10: 41: 03.388 XML [631: 20b] Стек: (

1 Ответ

1 голос
/ 15 сентября 2011

Попробуйте это, оно должно работать, я тоже столкнулся с той же проблемой. Вылетает, если есть целочисленное значение.

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