1

なんとか修正できた問題を思いついたのですが、それがどのように修正されたのかわかりません(笑)。誰でも私を教育するのを手伝ってもらえますか?

を使用して、文字列がセクションに分割された配列の配列を持つ単純なテーブル ビュー アプリを作成していますUILocalizedIndexedCollationUISearchBarユーザーが特定の文字列を見つけるために使用できるテーブルビューのヘッダーにも設定があります。

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})'

なぜこれが起こるのか理解できなくても大したことではありませんが、知っておくといいでしょう!

これを読んでくれてありがとう:)

4

0 に答える 0