Показать переменные в UILabels - PullRequest
0 голосов
/ 11 января 2012

Я получаю некоторые данные из файла XML на моем сервере, вот синтаксический анализ файла:

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {

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

        msgAdded = [[attributeDict objectForKey:@"added"] retain];
        msgId = [[attributeDict objectForKey:@"id"] intValue];

        msgNome        = [[NSMutableString alloc] init];
        msgName        = [[NSMutableString alloc] init];
        msgMatricula   = [[NSMutableString alloc] init];
        msgSenderCode  = [[NSMutableString alloc] init];

        inNome        = NO;
        inName        = NO;
        inMatricula   = NO;
        inSenderCode  = NO;


    }

    if ( [elementName isEqualToString:@"nome"] )       { inNome = YES;  }
    if ( [elementName isEqualToString:@"nome"] )       { inName = YES;  }
    if ( [elementName isEqualToString:@"matricula"] )  { inMatricula = YES;  }
    if ( [elementName isEqualToString:@"sendercode"] ) { inSenderCode = YES; }


}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {

    if ( inNome )        { [msgNome appendString:string]; }
    if ( inName )        { [msgName appendString:string]; }
    if ( inMatricula )   { [msgMatricula appendString:string]; }
    if ( inSenderCode )  { [msgSenderCode appendString:string]; }

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

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

        [messages addObject:[NSDictionary dictionaryWithObjectsAndKeys:msgAdded,@"added",msgNome,@"nome",msgMatricula,@"matricula",msgSenderCode,@"sendercode",msgName,@"name",nil]];

        [[messages reverseObjectEnumerator] allObjects];

        lastId = msgId;

        [msgAdded release];
        [msgNome release];
        [msgName release];
        [msgMatricula release];
        [msgSenderCode release];

    }

    if ( [elementName isEqualToString:@"nome"]      ) { inNome = NO;}
    if ( [elementName isEqualToString:@"name"]      ) { inName = NO;}
    if ( [elementName isEqualToString:@"matricula"]  ) { inMatricula = NO;}
    if ( [elementName isEqualToString:@"sendercode"] ) { inSenderCode = NO;}
}

Как вы можете заметить, загруженные данные хранятся в vars (@ "nome", @ "matricula" ..). Но как я могу отобразить значения в UILabels, как |label.text = @ "nome" |?

1 Ответ

2 голосов
/ 11 января 2012

похоже, что данные на самом деле хранятся в msgNome. @ "nome" - это строковое выражение, а не переменная экземпляра. Таким образом, вы должны установить label.text = msgNome;

также, вы должны просто иметь:

inNome = [elementName isEqualToString:@"nome"]; 

вместо всех дополнительных if операторов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...