атрибут синтаксического анализа тега iphone SDK - PullRequest
0 голосов
/ 10 января 2012

Я получил эту ошибку после разбора. * Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '- [NSCFString stringValue]: нераспознанный селектор, отправленный экземпляру 0x4b68480'

Код

- (void) синтаксический анализатор: (NSXMLParser *) синтаксический анализатор didStartElement: (NSString *) elementName namespaceURI: (NSString *) namespaceURI qualName: (NSString *) qName attribute: (NSDictionary *) attributeDict {

if([elementName isEqualToString:@"gallery"]){

}
else if ([elementName isEqualToString:@"asset"]){

    NSString *str ;
    str = [[attributeDict objectForKey:@"type"] stringValue];     <- HERE
    NSLog(@"type = %@",str);
    str = [[attributeDict objectForKey:@"thumbnail"] stringValue];      <- HERE
    NSLog(@"thumbnail = %@",str);
    str = [[attributeDict objectForKey:@"large"] stringValue];        <- HERE
    NSLog(@"large = %@",str);

}
 NSLog(@"Processing Element: %@",elementName);

}

Дерево XML выглядит как

"<" галерея ... ">" "<" asset type = "image" thumbnail = "/ ..." large = "/ ..." ">" ...

Спасибо за помощь!

1 Ответ

0 голосов
/ 10 января 2012

Ошибка говорит, очевидно, [attributeDict objectForKey:...] уже возвращает NSString. Таким образом, вам не нужно звонить stringValue, чтобы сохранить в str. т.е. вместо

str = [[attributeDict objectForKey:@"type"] stringValue];

вы можете просто сделать

str = [attributeDict objectForKey:@"type"];
...