创建谓词来测试关系的数量

Posted

技术标签:

【中文标题】创建谓词来测试关系的数量【英文标题】:Creating Predicate to Test the Number of Relationship 【发布时间】:2011-06-18 15:20:59 【问题描述】:

假设我在核心数据中有一个业务对象。业务对象可能有也可能没有电话。

我想创建一个 NSPredicate 对象,只有 Businesses with Phones 才能工作。

我该怎么做?

    NSPredicate * thePredicate5= [NSPredicate predicateWithFormat: @"Phones.count > 0"];

还是什么?

【问题讨论】:

【参考方案1】:
NSPredicate * thePredicate5= [NSPredicate predicateWithFormat:@"NONE Phones == nil"];

NSPredicate * thePredicate5= [NSPredicate predicateWithFormat:@"ANY Phones != nil"];

当我第一次阅读您的问题时,我不知道答案,但它引起了我的注意。我阅读了文档并在我的一个项目(使用 Core Data 和 sqlite 的 iPhone 应用程序)上进行了一些实验,附加的代码似乎可以满足您的需求,但我不能保证它是正确的解决方案。

【讨论】:

我查过了。它应该是 Phones.@count >0 。我的意思是 ANY Phones!=nil 也可以。鉴于所有电话都不是 !=nil ,因此如果有任何电话不是 !nil 它也可以工作。虽然从技术上讲不是答案。

以上是关于创建谓词来测试关系的数量的主要内容,如果未能解决你的问题,请参考以下文章

离散数学-谓词逻辑

一对多关系的CoreData谓词

如何为对象计数多个关系创建谓词?核心数据 iOS Swift

核心数据和关系谓词

比较过多关系中的两个属性的 CoreData 谓词

CloudKit 谓词:使用 CKQuery 的谓词搜索多个参考字段