tableView: cellForRowAtIndexPath: не работает правильно при тестировании на iphone - PullRequest
0 голосов
/ 20 октября 2011

В настоящее время у меня есть uitableview, который пользователь может прокрутить и выбрать ячейку. Когда ячейка выбрана, я сохраняю это значение indexpath, а когда пользователь возвращается к представлению с представлением в нем uitableview, я передаю это значение indexpath обратно и ставлю галочку для этой ячейки внутри tableView: cellForRowAtIndexPath: с помощью приведенного ниже кода.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

//...


//Replaces previously selected cells accessory view (tick)
    if (indexPath == oldCheckedData) 
    {
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
        NSLog(@" Tick");
    } 
    else 
    {
        cell.accessoryType = UITableViewCellAccessoryNone;
        NSLog(@"No Tick");
    } 
}

Странно то, что при тестировании на эмуляторе он работает отлично ... Однако, когда я пытаюсь протестировать его на телефоне, он никогда не вводит первый оператор if ... поэтому галочка никогда не добавляется.

1 Ответ

1 голос
/ 20 октября 2011

Я думаю, вы сравниваете указатели, а не путь индекса. Вместо равных, используйте:

[indexPath isEqual:oldCheckedData]
...