实体A与实体B有一对多关系,称为points
。
我有B的NSPredicate
我需要获取A的对象,这些对象具有满足此谓词的任何B对象。
我怎么能用一个NSPredicate做到这一点?
我不能在两个单独的操作中执行此操作(首先找到B,然后使用它们来查找A),因为我需要为A保留NSFetchedResultsController,它必须做出反应(调用回调controllerWillChangeContent
,{{1}和/ controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:
)当添加/更改/删除B的任何对象时。
另一个注意事项 - 我从其他课程中获取B上的那些谓词,但我不知道它包含什么。因此,我无法手动将其插入A中的谓词。
答案 0 :(得分:0)
如果您对B的谓词是(例如)
[NSPredicate predicateWithFormat:@"someProp == %@", someValue]
然后谓词获取具有满足此属性的任何B对象的所有A对象 会是
[NSPredicate predicateWithFormat:@"ANY points.someProp == %@", someValue]
获取的结果控制器将跟踪对A的points
属性的更改
(添加或删除B对象)。但是它不会跟踪属性的变化
B对象。原因是FRC不跟踪相关对象的变化,进行比较
NSFetchedResultsController with relationship not updating