在B的谓词中插入B的谓词,其中A与B的关系相关联

时间:2014-03-05 12:49:00

标签: ios objective-c magicalrecord

实体A与实体B有一对多关系,称为points。 我有B的NSPredicate 我需要获取A的对象,这些对象具有满足此谓词的任何B对象。 我怎么能用一个NSPredicate做到这一点?

我不能在两个单独的操作中执行此操作(首先找到B,然后使用它们来查找A),因为我需要为A保留NSFetchedResultsController,它必须做出反应(调用回调controllerWillChangeContent,{{1}和/ controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:)当添加/更改/删除B的任何对象时。

另一个注意事项 - 我从其他课程中获取B上的那些谓词,但我不知道它包含什么。因此,我无法手动将其插入A中的谓词。

1 个答案:

答案 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