为什么没有调用controllerDidChangeContent?

时间:2012-02-22 18:33:11

标签: iphone core-data

这是一个简单的场景:假设我有两个核心数据实体:AB,具有一对多的关系。 (A可以指向多个B)。 在创建NSFetchedResultsController获取所有A个对象时,更改任何A对象的属性将触发controllerDidChangeContent委托方法。但是,更改B对象的属性不会触发此方法。 (尽管更改的B对象由A个对象之一引用)

知道为什么吗?

1 个答案:

答案 0 :(得分:8)

这需要一些时间来解决它。获取的结果控制器评估其托管对象上下文的更改。如果这些更改符合为其获取设置的条件,则这些更改仅触发获取的结果控制器委托方法。这包括匹配谓词条件。

如果您的控制器正在获取类型A的实体,那么它只会对B类实体的更改作出反应,如果对B的更改影响A中的内容(并且匹配谓词条件abd也可能是排序描述符)

您可以在上面的问题中显示谓词吗?你能展示A和B之间的关系吗?