在核心数据中搜索所有具有空“对多”关系的对象

Posted

技术标签:

【中文标题】在核心数据中搜索所有具有空“对多”关系的对象【英文标题】:Search Core Data for all objects with an empty "to-many" relationship 【发布时间】:2012-02-29 14:03:27 【问题描述】:

在与this question 几乎相同的情况下,只是我正在寻找一种类型的所有记录,这些记录与另一种类型没有任何对多关系。

假设我有一组患者和一组列表。患者可以属于多个列表,一个列表可以包含多个患者。

如何找到不在任何列表中的所有患者? 我正在使用核心数据模型。

更新:想通了,但由于我的声望

NSPredicate *predicate = [NSPredicate
                          predicateWithFormat:@"lists.@count == 0"];
[fetchRequest setPredicate:predicate];

然后当我运行 fetch 请求时,它只调出没有附加列表的患者。

【问题讨论】:

【参考方案1】:

这是你应该做的:

NSPredicate *predicate = [NSPredicate
                          predicateWithFormat:@"lists.@count == 0"];
[fetchRequest setPredicate:predicate];

;) 想知道我在哪里想出了那个解决方案...

【讨论】:

【参考方案2】:

想通了。这是我所做的:

NSPredicate *predicate = [NSPredicate
                          predicateWithFormat:@"lists.@count == 0"];
[fetchRequest setPredicate:predicate];

然后当我运行 fetch 请求时,它只调出没有附加列表的患者。

【讨论】:

以上是关于在核心数据中搜索所有具有空“对多”关系的对象的主要内容,如果未能解决你的问题,请参考以下文章

核心数据:获取特定对象的多对多关系中的所有实体?

将对象添加到具有多对多关系的核心数据中的 NSSet

具有多对多谓词的核心数据

具有多对多关系的核心数据 NSPredicate

具有多对多关系的核心数据 - 在 SUBQUERY 中使用 ALL 创建 NSPredicate

如何在不复制目标 NSManagedObject 的情况下将目标 NSManagedObject 添加到另一个具有反向多对多核心数据关系的对象?