1

NSFetchedResultsController によって管理されるテーブル ビューがあります。TableViewController で Apple 提供のボイラープレート コードを使用しています。私の述語は、名前に基づいてオブジェクトを取得します。「編集」ボタンを使用したオブジェクトの追加/削除に関しては、すべて正常に機能しているようです。プログラムでオブジェクトの名前を変更すると、名前の変更によってオブジェクトがテーブルの上に移動しない限り、問題なく動作します。この場合、次のエラーが発生します。

重大なアプリケーション エラーです。-controllerDidChangeContent: の呼び出し中に、NSFetchedResultsController のデリゲートから例外がキャッチされました。*** -[NSMutableArray objectAtIndex:]: userInfo (null) の範囲 [0 .. 0] を超えるインデックス 1

A、C、D という名前の 3 つのオブジェクトがあるとします。D の名前を B に変更すると、アプリがクラッシュします。C の名前を B に変更すると、すべてがクールになります。

何が起きてる?

4

2 に答える 2

1

Deusty のSafeFetchedResultsControllerサブクラスの使用はNSFetchedResultsController、これらの例外を引き起こす Apple のクラスをつまずかせるトリッキーな行の更新および移動操作に対処するのに役立ちます。

于 2010-07-02T23:47:54.573 に答える
0

エラーメッセージは、例外がコードで発生したこと、およびobjectAtIndex:無効なインデックスで呼び出したことを示しています。配列からオブジェクトを削除し、配列に挿入し直す前にオブジェクトを取得しようとしているようです。

于 2011-07-19T17:18:52.240 に答える