1

OK、検索バーを実装するのはこれが初めてです。私はいくつかのチュートリアルに従い、tableviewcontroller を含むプロジェクト内での実装を開始しました。ストーリーボード内で、カスタム テーブルビュー セルの上に「検索バーと検索バー コントローラー」をドラッグして追加しました。

デフォルトでは、テーブルビューコントローラー内にドラッグして何もせずにプログラムを実行して検索バーをタップしても、実装が行われていないため何もしません。

しかし、私の場合、タップするだけでプログラムがクラッシュし、次のように表示されます。

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:'

だから私はここで止められ、残りの実装を行うことはできません. 誰かが問題の可能性を指摘できますか? ありがとう!

4

1 に答える 1

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];
}
于 2013-09-24T01:12:46.173 に答える