TableView: cellforrowroryAtIndexPath: неправильно работает при тестировании на iPhone

StackOverflow https://stackoverflow.com/questions/7828010

Вопрос

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

- (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");
    } 
}

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

Это было полезно?

Решение

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

[indexPath isEqual:oldCheckedData]
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top