NSFetchedResultsController を使用して 1 か月からアプリを構築しており、3.1.2 SDK でアプリをテストしていました。問題は、アプリのあらゆる場所で NSFetchedResultsController を使用していて、SDK の 3.1.2 バージョンで作業していたことです。現在、クライアントは、3.0 バージョンと互換性を持たせる必要があると言い、締め切りが迫っています。
しかし、コントローラーによって処理されるオブジェクトを変更するたびにクラッシュします。アプリケーションは非常に奇妙なエラーでクラッシュします。
この問題は、セクション内の最後のオブジェクトを削除するとき、および変更によってオブジェクトが別のセクションに影響を与えるときに発生します。
Dave Mark と Jeff LaMarche による「iPhone 3 Development Tackling iPhone SDK 3」のサンプル コードを使用しています。リンクテキストからの変更も含めました
アプリケーションがクラッシュしたときのコンソールの出力例を次に示します。
*** キャッチされない例外 'NSInternalInconsistencyException' が原因でアプリを終了します。理由: '無効な更新: セクションの数が無効です。更新後のテーブル ビューに含まれるセクションの数 (1) は、更新前のテーブル ビューに含まれるセクションの数 (2) に、挿入または削除されたセクションの数 (2 挿入、0削除されました)」2010-03-14 16:23:29.758 Instaproofs[5879:207] Stack: ( 807902715, 7364425, 807986683, 811271572, 815059090, 815007323, 211023, 4363331, 810589786, 807635429, 810579728, 3620573, 3620227, 3614682, 3609719, 27337 、810595174、807686849、807683624、839142449、839142646、814752238)
NSFetchedResultsController が非常にバグが多いことを知っていたら、私は決してそれを使用しませんでした。
基本的に、3.0以降のSDKで正常に動作するには、NSFetchedResultsControllerDelegateが必要です。
誰かが私が間違っていることを理解するのを手伝ってくれれば、命の恩人になります.