1

Core DataとKVOを使用して、データストアへの保存をトリガーする値の変更を探しています。検索がに接続されたテーブルビューがありますNSFetchedResultsController。検索が変更されると、検索ボタンを押すと新しい結果コントローラーが作成されます。ユーザーが結果テーブルビューでアイテムを選択すると、ユーザーは詳細ビューに入り、編集を行うことができます。

これは私が問題に遭遇するところです。ユーザーが私が行った別のUIControlに変更を加えると、詳細ビ​​ューに通知されNSFetchedResultsController、テーブルビューがビュースタックに私をプッシュしたときから記憶しているビューを使用して、を取得NSManagedObjectContextして保存できます。そうすると、次のエラーが発生することがあります。

Serious application error.  Exception was caught during Core Data change processing.  This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification.  no object at index 89 in section at index 0 with userInfo (null)
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'no object at index 89 in section at index 0'

これは、検索を実行して、テーブルの一番上にないオブジェクトを一番上に移動したときに発生する傾向があることがわかりました。頭の後ろで何が悪いのか漠然と知っていますが、これを修正する方法についてのアドバイスをいただければ幸いです。

4

1 に答える 1

1

私は何が悪いのかを理解しました。私は古いNSFetchedResultsControllerの代理人の設定を解除するのを忘れました、そしてまた言ったを解放するのを忘れましたNSFetchedResultsController。私のUITableViewサブクラスは、NSFetchedResultsControllerthroughデリゲートへの更新にも応答し、奇妙な呼び出しが行われる原因になりました。

于 2010-07-09T00:43:53.400 に答える