A类包含与C类的toMany关系
B类包含与C类的toMany关系
我正在寻求设计一个NSFetchRequest,它基于与类C的关系在类A和类B 的实例之间至少有一个公共对象的概念来查询对象
我缺乏合适的语言来描述这个概念,但我觉得它必须完全在NSPredcates 的某个方案中实现
因此,如果对象A(A-0(与对象C(C-2,C-4(相关
并且对象B(B-0(与对象C(C-0、C-4(相关
然后谓词认为匹配
但如果对象B(B-0(与对象C(C-0,C-1(相关
那么这将不被视为匹配
我的非工作谓词开始时是这样的
[NSPredicate predicateWithFormat:@"obja.objectsC IN %@", objb.objectsC];
CoreData只是不允许这样做,但希望将其作为正确答案的参考框架
- 您不能简单地匹配数组中的数组,因为您只能匹配阵列中的对象
- 这种情况的解决方案是使用SUBQUERY。我们将迭代obja.objectsC中的所有对象以匹配objb.objectsC中一个对象。之后,我们计算所有引用并与零进行比较
[NSPredicate predicateWithFormat:@"SUBQUERY(obja.objectsC, $objA, $objA IN %@).@count >0", objb.objectsC];