搜索栏和搜索栏控制器只需点击就可以崩溃

时间:2013-09-24 00:38:16

标签: ios objective-c uitableview uisearchbar uisearchdisplaycontroller

好的,这是我第一次实施搜索栏。我已经按照几个教程开始在包含tableviewcontroller的项目中实现它。在我的故事板中,我拖动并在自定义tableview单元格上方添加了“搜索栏和搜索栏控制器”。

默认情况下,如果您只是将它拖到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:'

所以我在这里停下来,不能做其余的实施。有人可以指出可能是什么问题吗?谢谢!

1 个答案:

答案 0 :(得分:2)

您需要查看您的UITableViewDataSource的tableView:cellForRowAtIndexPath:,并确保返回UITableViewCell。很可能是因为你的表视图在运行dequeueReusableCellWithIdentifier:时返回一个,但你的UISearchDisplayController的tableView没有。

我最终还是运行了这样的东西:

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