Панель поиска и контроллер панели поиска аварийно завершают работу, просто нажав на нее

Хорошо, это первый раз, когда я реализую панель поиска. Я выполнил несколько руководств и начал реализовывать их в своем проекте, содержащем tableviewcontroller. Внутри моей раскадровки я перетащил и добавил «Панель поиска и контроллер панели поиска» над настраиваемой ячейкой таблицы.

По умолчанию, если вы просто перетащите его в свой контроллер tableview и ничего не сделаете, а просто запустите программу и коснетесь строки поиска, она ничего не сделает, так как не было реализовано никакой реализации.

Но в моем случае, просто нажав на нее, программа вылетает и показывает следующее:

2013-09-24 05:29:32.468 TechY[4189:a0b] *** Assertion failure in -[UISearchResultsTableView _configureCellForDisplay:forIndexPath:], /SourceCache/UIKit_Sim/UIKit-2903.2/UITableView.m:6235
2013-09-24 05:29:32.533 TechY[4189:a0b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'

Итак, я остановился здесь и не могу выполнить остальную часть реализации. Может кто подскажет в чем может быть проблема? Спасибо!


person AJ112    schedule 24.09.2013    source источник


Ответы (1)


Что ж, вам нужно взглянуть на tableView:cellForRowAtIndexPath: вашего UITableViewDataSource и убедиться, что вы возвращаете UITableViewCell. Скорее всего, это потому, что ваше табличное представление возвращает один при запуске dequeueReusableCellWithIdentifier:, а tableView вашего UISearchDisplayController - нет.

В итоге я запускаю что-то вроде этого:

static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil && tableView != self.tableView) {
    cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
}
person Patrick Tescher    schedule 24.09.2013