NSFetchedResultsControllerとNSFetchedResultsControllerDelegateを使用してUITableViewController/UITableViewを駆動しています。ボタンをクリックすると、を介してNSManagedObjectの削除がトリガーされます[managedObjectContext deleteObject:aManagedObject]
。
NSFetchedResultsControllerDelegateメソッドは適切に起動し、行はUITableViewから削除されます。
ここで物事が奇妙になります。[managedObjectContext save:&error]
NSFetchedResultsControllerDelegateメソッドを呼び出すcontroller:didChangeObject:atIndexPath:forChangeType:newIndexPath:
と、削除されたNSManagedObjectがオブジェクトとして呼び出され(管理対象オブジェクトではisDeletedはYES)、変更タイプはNSFetchedResultsChangeInsertであり、削除されたNSManagedObjectをUITableViewに追加します。
isDeleted
デリゲートメソッドのフラグをチェックして挿入を抑制しようとしましたが、これによりbeginUpdates
とendUpdates
アサーションが失敗します。
私は何か間違ったことをしているのですか、それとも故障していますか?私はどこかで一歩を逃しましたか?