12

NSFetchedResultController別のセクションがあります。次を使用して検索しようとするとクラッシュしますUISearchDisplayController

*** Assertion failure in -[UITableViewRowData rectForRow:inSection:], /SourceCache/UIKit/UIKit-2372/UITableViewRowData.m:1630

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'request for rect at invalid index path (<NSIndexPath 0x1d2c4120> 2 indexes [0, 1])'

確認したところ、検索配列には実際に 2 つのエントリがあります (期待される結果)。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

1を返します

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

2を返します

面白いことに、セクションが 1 つしかない場合でも、完全に機能します。

助けてください!:)

4

1 に答える 1

38

あなたがそれを理解したかどうかはわかりませんが、私はあなたがそれを理解したと思いますが、あなたが使用していると仮定します

[self.tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

あなたのcellForRowAtIndexPathで

行う

 if (tableView == self.searchDisplayController.searchResultsTableView) {
    cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
 } else {
    cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
 }

また、self.tableViewを使用していることを確認してください

于 2013-02-24T23:44:39.820 に答える