仅在进行更新时报告NSFetchedResultsChangeInsert

时间:2010-06-17 22:04:55

标签: core-data

我有一个类充当NSFetchedResultsControllerDelegate,它正在接收消息 - (无效)控制器:didChangeObject:atIndexPath:forChangeType:newIndexPath: 更改类型为NSFetchedResultsChangeInsert,但作为主题的实际对象确实没有重新插入,只更新。所以我希望得到一个类型为NSFetchedResultsChangeUpdate的更改消息,不应该吗?

如果我检查对象上isInserted的值,它会产生false(正如我程序中的逻辑所预期的那样)。所以我的问题是,为什么只在更改/更新时报告为插入?

他们唯一可以想到的是,正在发生的变化的一部分是,另一个实体类型的对象插入了与NSFetchedResultsController设置为获取的实体类型的对象的关系。

1 个答案:

答案 0 :(得分:1)

因为对委托的调用发生在保存之后,此时对象不再处于isInserted状态。现在已成功保存,插入完成。

-isInserted在新插入对象但尚未保存的情况下返回YES