1

好吧,這是我第一次實現搜索欄。我遵循了幾個教程,並開始在包含tableviewcontroller的項目中實現它。在我的Storyboard內,我拖動並在自定義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:' 

所以我在這裏停止,並且不能做執行休息。有人可以指出可能是什麼問題?謝謝!

回答

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]; 
}