У меня есть настройка UIViewController в раскадровке с табличным представлением и UISearchDisplayController.
Я пытаюсь использовать собственную прототипную ячейку из self.tableview(которая связана с основным видом таблицы в раскадровке). Он отлично работает, если self.tableview вернул хотя бы 1 ячейку при загрузке моего представления, но если self.tableview не загружает ячейку (поскольку нет данных), и я загружаю UISearchBar и выполняю поиск, cellForRowAtIndexPath: сбой метода:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomSearchCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"CustomSearchCell" forIndexPath:indexPath];
[self configureCell:cell atIndexPath:indexPath];
return cell;
}
-(void)configureCell:(CustomSearchCell *)cell atIndexPath:(NSIndexPath *)indexPath {
User *user = [self.fetchedResultsController objectAtIndexPath:indexPath];
cell.nameLabel.text = user.username;
}
Ошибка:
*** Assertion failure in -[UITableViewRowData rectForRow:inSection:heightCanBeGuessed:]
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'request for rect at invalid index path (<NSIndexPath: 0x9ef3d00> {length = 2, path = 0 - 0})
У моего fetchedResultsController, по-видимому, есть данные (1 секция, 2 строки) в точке, на которой вызывается вышеупомянутый метод. Он выходит из строя в строке dequeueReusableCellWithIdentifier.
Любые указатели/идеи? Он должен удалить ячейку прототипа из self.tableview, но я предполагаю, что в self.tableview не было ничего, что было причиной?