Core Data NSPredicate for (select ... where not in (select))

Posted

技术标签:

【中文标题】Core Data NSPredicate for (select ... where not in (select))【英文标题】: 【发布时间】:2011-11-01 21:54:12 【问题描述】:

有没有一种方法可以模拟子选择方法,而无需提取您想要限制的整个集合。

在这个问题中 Core Data: Query objectIDs in a predicate?

他们演示了如何使用 not in limit。但它显示使用您想要限制的对象列表。

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT (self IN %@)", arrayOfExcludedObjects];

这是执行此操作的唯一方法,还是有办法限制子查询,这样我就不必获得要限制的查询的结果。

【问题讨论】:

【参考方案1】:

事实证明,似乎没有办法在 CoreData 中进行连接。

我可能会手动打开 SQLite 数据库并加入数据以获得我正在寻找的结果,但如果我走这条路,我会失去核心数据的力量。

似乎完成此任务的最佳方法是运行我想要的查询并取回我想要限制的对象,然后将它们放入 arrayOfExcludedObjects。或者,我可以将我想要保留的对象添加到一个数组中,并使用“(self IN %@)”添加一个谓词,它会完成同样的事情。

我通过核心数据获得的额外功能偶尔会失去其他功能。

也许有一天苹果会添加这些类型的谓词。

【讨论】:

以上是关于Core Data NSPredicate for (select ... where not in (select))的主要内容,如果未能解决你的问题,请参考以下文章

Core Data NSPredicate 过滤结果

使用 NSPredicate 从 Core Data 访问对象

使用 NSPredicate 遍历多个 Core Data 对象

iPhone如何使用NSPredicate按父实体过滤Core Data?

ios 如何正确使用 NSPredicate 来匹配 Core Data 的 NSString?

NSPredicate Core Data iOS 中的子查询