首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSFetchRequest和NSPredicate,数组比较和匹配

NSFetchRequest和NSPredicate,数组比较和匹配
EN

Stack Overflow用户
提问于 2018-07-19 20:38:48
回答 1查看 79关注 0票数 1

类A包含与类C的toMany关系

类B包含与类C的toMany关系

我正在设计一个NSFetchRequest,它基于与类C的关系在A类和B类实例之间至少有一个公共对象的概念来查询对象

我缺乏适当的语言来描述这个概念,但我觉得它必须完全在NSPredicates的某个方案中是可能的。

因此,如果对象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完全不允许的,但它想提供一个参考框架,与正确的答案相对照。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-19 21:40:12

  1. 不能简单地匹配数组中的数组,因为只能匹配数组中的对象。
  2. 解决这种情况的办法是使用SUBQUERY。我们将迭代obja.objectsC中的所有对象以匹配objb.objectsC中的对象。在此之后,我们计算所有引用,并将其与零进行比较。

[NSPredicate predicateWithFormat:@"SUBQUERY(obja.objectsC, $objA, $objA IN %@).@count > 0", objb.objectsC];

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51431351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档