为什么没有调用controllerDidChangeContent?

Jos*_*hua 3 iphone core-data

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

知道为什么吗?

Jim*_*Jim 8

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

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

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