Поместить атрибут одного объекта в разные строки - PullRequest
0 голосов
/ 20 мая 2011
NSDictionary *json    = [responseString JSONValue];
    Status *statut = [[Status alloc] init];
    statut.flyNumber = [json objectForKey:@"flynumber"];
    statut.ftatuts = [json objectForKey:@"fstatuts"];
    statut.escDepart = [json objectForKey:@"escdepart"];
    statut.escArrival = [json objectForKey:@"escarrival"];
    statut.proArrival = [json objectForKey:@"proarrival"];
    statut.proDepart = [json objectForKey:@"prodepart"];
    statut.estDepart = [json objectForKey:@"estdepart"];
    statut.estArrival = [json objectForKey:@"estarrival"];
    statut.realDepart = [json objectForKey:@"realdepart"];
    statut.realArrival = [json objectForKey:@"realarrived"];
    [dataToDisplay addObject:statut];

Но если я сделаю так:

Status *statut2 = [dataToDisplay objectAtIndex:indexPath.row];
    NSLog(@"2 ok");
    cell.textLabel.text =  [NSString stringWithFormat:@" %@  %@",statut2.escDepart,statut2.escArrival];
    NSLog(@"3 ok");

    return cell;

Вся информация будет в одной строке. Но я хочу структурировать свою информацию в разных строках. Для примера в первом примере я хочу поместить statut.escDepart и escArrival, во второй statut.proDepart и statut.proArrival. ... Я пытался следовать этому примеру,

// declare this enum in your .h file
enum {
    flyNumberRow   = 0, // first row in tableView
    ftatutsRow     = 1, // second row
    escDepartRow   = 2, // etc.
    escArrivalRow  = 3,
    proArrivalRow  = 4,
    proDepartRow   = 5,
    estDepartRow   = 6,
    estArrivalRow  = 7, 
    realDepartRow  = 8,
    realArrivalRow = 9

}

Status *statut2 = [dataToDisplay objectAtIndex:indexPath.row];

switch(indexPath.row) {
    case flyNumberRow:
        cell.textLabel.text =  [NSString stringWithFormat:@"%@",statut2.flyNumber];
        break;
    case ftatutsRow:
        cell.textLabel.text =  [NSString stringWithFormat:@"%@",statut2.ftatuts];
        break;
    // ... and so on for each case
}

return cell;

Evidently, tableView:numberOfRowsInSection: must return 10

Но это не работает. У меня есть ошибки. Помогите мне pleaaaase это ошибка. http://hpics.li/b5653ce

1 Ответ

0 голосов
/ 20 мая 2011

Вы добавляете один экземпляр Status в dataToDisplay. Поэтому, когда запрашивается вторая строка, dataToDisplay не имеет второго объекта, и ваше приложение падает. Я не думаю, что вы должны использовать массив здесь. Поскольку вы уже знаете количество ячеек, вручную верните numberOfRowsInSection: как 10. Вместо объекта массива удерживайте объект Status. Затем в tableView:cellForRowAtIndexPath: используйте оператор switch, чтобы присвоить значения ячейке. Из того, что я вижу, вы можете избавиться от dataToDisplay.

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