проблема в разборе! - PullRequest
1 голос
/ 29 марта 2011

Я не могу получить значения обработки, превышающие «iid». давая исключение:

[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key iid.'

enter image description here

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName 
  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName 
    attributes:(NSDictionary *)attributeDict {
    if([elementName isEqualToString:@"NewDataSet"]) 
    {
    appDelegate.books = [[NSMutableArray alloc] init];
        }
    else if([elementName isEqualToString:@"Table"])
      {
       if([elementName isEqualToString:@"id"])
             { 
          {
        aBook = [[Book alloc] init];
         }
     }
    NSLog(@"Processing Element: %@", elementName);
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { 
       if(!currentElementValue) 
        currentElementValue = [[NSMutableString alloc] initWithString:string];
    else
    {
    [currentElementValue appendString:string];
    NSLog(@"Processing Value: %@", currentElementValue);
    }
}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName 
  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
    //if([elementName isEqualToString:@"Tablesreturn"])
        //return;
        if([elementName isEqualToString:@"Table"]) 
         {
        [appDelegate.books addObject:aBook];
        [aBook release];
        aBook = nil;
     }
    else 
        [aBook setValue:currentElementValue forKey:elementName];
    [currentElementValue release];
    currentElementValue = nil;
}

Ответы [ 2 ]

0 голосов
/ 29 марта 2011

Не найдено значение iid. Он чувствителен к регистру, поэтому проверьте, не используете ли вы неправильный регистр в названии вашего ярлыка.

Если вы не ищете слишком много значений, может быть, вы можете просто сделать руководство, если тогда еще для всех интересующих вас узлов 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 if([elementName isEqualToString:@"xyz"])
    {
        [aBook setValue:currentElementValue forKey:@"xyz"];
    }
    // and so on, for the rest of the nodes.
    [currentElementValue release];
    currentElementValue = nil;
}
0 голосов
/ 29 марта 2011

в ур. Класс книги проверяет все теги или поля, указанные в файле .h ....... ответьте мне

как Table, Tablesreturn ....... все они.

и синтезировать их всех

...