我正在使用 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
andendUpdates
断言失败。
我做错了什么或不正常吗?我在某个地方错过了一步吗?