0

我正在尝试列出列表...但是当我使用 [listaCidades count] 时...我抛出异常(对不起,问题很长,但我的意思是所有这些方法都与问题相关)

 -(void) preencherCidades  {
for (int iCnt = 0; iCnt < [listaEstados count]; iCnt++) {
    NSString *estado = [listaEstados objectAtIndex:iCnt];
    NSArray *listaNomeCidades = nil;
    NSMutableArray *_listaCidades = [[NSMutableArray alloc]init];
    NSString *path = [[NSBundle mainBundle] pathForResource:estado ofType:@"txt"];
    NSString *file = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:NULL];
    listaNomeCidades = [[file componentsSeparatedByString:@"\n"]retain];

    for (int iCnt2 = 0; iCnt2 < [listaNomeCidades count]; iCnt2++) {
        NSArray *listaNomesPrefeitos = nil;
        NSArray *listaPartidosPrefeitos = nil;
        NSArray *listaVereadores = nil;

        NSString *pathNomePrefeitos = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"prefeito-nome-%@",[listaNomeCidades objectAtIndex:iCnt2]] ofType:@"txt"];
        NSString *fileNomePrefeitos = [NSString stringWithContentsOfFile:pathNomePrefeitos encoding:NSUTF8StringEncoding error:NULL];
        listaNomesPrefeitos = [[fileNomePrefeitos componentsSeparatedByString:@"\n"]retain];

        NSString *pathPartidoPrefeitos = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"prefeito-partido-%@",[listaNomeCidades objectAtIndex:iCnt2]] ofType:@"txt"];
        NSString *filePartidoPrefeitos = [NSString stringWithContentsOfFile:pathPartidoPrefeitos encoding:NSUTF8StringEncoding error:NULL];
        listaPartidosPrefeitos = [[filePartidoPrefeitos componentsSeparatedByString:@"\n"]retain];

        NSString *pathVereadores = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"vereadores-%@",[listaNomeCidades objectAtIndex:iCnt2]] ofType:@"txt"];

        NSString *fileVereadores = [NSString stringWithContentsOfFile:pathVereadores encoding:NSUTF8StringEncoding error:NULL];
        listaVereadores = [[fileVereadores componentsSeparatedByString:@"\n"]retain];
        Prefeito *prefeito = nil;
        if([listaNomesPrefeitos count] > 0 && [listaPartidosPrefeitos count]>0)
            prefeito = [[Prefeito alloc]initWithNome:[listaNomesPrefeitos objectAtIndex:0] partido:[listaPartidosPrefeitos objectAtIndex:0] id:iCnt2];
        Cidade *cidade = [[Cidade alloc]initWithNome:[listaNomeCidades objectAtIndex:iCnt2] prefeito:prefeito listaVereadores:listaVereadores id:iCnt2];

        [_listaCidades addObject:cidade];

    }
    [listaCidades addObject:_listaCidades];

}
}
4

2 回答 2

1

通过查看您的答案 [Cidade isEqualToString:]:unrecognized selector to instance 0x1cec00。我开始知道这是唯一需要字符串的地方,但您正在返回 Object。你解决问题很好。快乐编码。

于 2013-02-19T17:20:54.907 回答
0

我解决了这个问题

NSMutableArray *listaCidades2 = (NSMutableArray *)[listaCidades objectAtIndex:indiceEstado];  
Cidade *cidade = (Cidade *)[listaCidades2 objectAtIndex:row];
 return cidade.nome;

代替:

 - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {

    NSMutableArray *listaCidades2 = (NSMutableArray *)[listaCidades objectAtIndex:indiceEstado]; 
return [listaCidades2 objectAtIndex:row];
 }
于 2013-02-19T17:15:15.177 回答