TableView: cellforrowroryAtIndexPath: неправильно работает при тестировании на iPhone
-
27-10-2019 - |
Вопрос
В настоящее время у меня есть 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]
Не связан с StackOverflow