这是一个简单的场景:假设我有两个核心数据实体:A
和B
,具有一对多的关系。 (A
可以指向多个B
)。
在创建NSFetchedResultsController
获取所有A
个对象时,更改任何A
对象的属性将触发controllerDidChangeContent
委托方法。但是,更改B
对象的属性不会触发此方法。 (尽管更改的B
对象由A
个对象之一引用)
知道为什么吗?
答案 0 :(得分:8)
这需要一些时间来解决它。获取的结果控制器评估其托管对象上下文的更改。如果这些更改符合为其获取设置的条件,则这些更改仅触发获取的结果控制器委托方法。这包括匹配谓词条件。
如果您的控制器正在获取类型A的实体,那么它只会对B类实体的更改作出反应,如果对B的更改影响A中的内容(并且匹配谓词条件abd也可能是排序描述符)
您可以在上面的问题中显示谓词吗?你能展示A和B之间的关系吗?