Это либо ошибка XCode, либо я пропустил здесь важное правило.
Обновление: - Какова вероятность того, что это странная ошибка в XCode/Storyboard?
Ситуация:
- iOS 5, раскадровка
- Это настройка раскадровки: https://i.imgur.com/T5WyD.png
- Еще один скриншот полной настройки: https://i.imgur.com/1tVuz.png
- TableViewController с пользовательской ячейкой, ячейка имеет многоразовый идентификатор «NewCell».
в "cellForRowAtIndexPath" у меня в основном есть:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"NewCell"]; return cell;
Это вызывает исключение:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'
Вещи, которые я уже пробовал:
- Я настроил новый проект с нуля, TabBarController, с TableViewController и пользовательской ячейкой, все подключено к раскадровке, установил многоразовый идентификатор ячейки. Использовал тот же код, что и выше, работает отлично. Я не знаю, почему это не сработало с раскадровкой выше...
У меня есть ощущение, что это как-то связано с деревом, которое я там построил, которое представляет собой TabBarController, загрузку NavigationController, загрузку TableViewController, предоставление нескольких элементов, один из которых щелкнут, который загружает другой TableViewController, который не может работать с пользовательская ячейка, как-то.
Важно: проблема заключается в том, что раскадровка должна убедиться, что: UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"NewCell"];
никогда не вернет NIL (в отличие от раскадровки/iOS4). Но у меня ноль. И я не могу, черт возьми, понять, что происходит.