なんとか修正できた問題を思いついたのですが、それがどのように修正されたのかわかりません(笑)。誰でも私を教育するのを手伝ってもらえますか?
を使用して、文字列がセクションに分割された配列の配列を持つ単純なテーブル ビュー アプリを作成していますUILocalizedIndexedCollation
。UISearchBar
ユーザーが特定の文字列を見つけるために使用できるテーブルビューのヘッダーにも設定があります。
UISearchDisplayController
メソッドをセットアップし、一連の if ステートメントを追加して検索結果をテーブル ビューに取り込むと、少しおかしくなりました。
これが私のcellForRow:atIndexPath
方法です:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"Simple Cell";
UITableViewCell *cell = nil;
// Get a cell from the table view.
if (tableView == self.searchDisplayController.searchResultsTableView) {
// Grab a cell for the search results
cell = [self.tableView dequeueReusableCellWithIdentifier:cellIdentifier];
} else {
// Grab a cell for the main table view
cell = [self.tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
}
// Setup and return the cell.
if (tableView == self.tableView) {
cell.textLabel.text = self.sectionsArray[indexPath.section][indexPath.row];
} else {
cell.textLabel.text = self.searchResults[indexPath.row];
}
return cell;
}
これは問題なく動作しますが、セルを取得するセクションを次のように変更すると、次のself.tableView
ようになります。
// Get a cell from the table view.
cell = [self.tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
シミュレーターを実行すると、次のエラーが表示されます。
キャッチされていない例外 'NSInternalInconsistencyException' が原因でアプリを終了しています。理由: 'request for rect at invalid index path ({length = 2, path = 0 - 2})'
なぜこれが起こるのか理解できなくても大したことではありませんが、知っておくといいでしょう!
これを読んでくれてありがとう:)