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