gpt4 book ai didi

ios - 具有关系的 CoreData NSPredicate

转载 作者:行者123 更新时间:2023-11-28 18:23:00 25 4
gpt4 key购买 nike

我有以下 CoreData 对象模型

enter image description here

现在我在使用以下条件制作谓词时遇到问题。

获取所有那些 DBOpportunity WHERE

DBOpportunity.stateCode == 1

DBOpportunity.invoiceDate >= GIVEN_DATE

DBOpportunityLines.crmAccept == 1 或 DBOpportunityLines.crmAccept == 3

我已经尝试了 apple 提供的大量示例和编程指南但无法实现这一目标。

最佳答案

opportunitylines 是一种对多 关系,因此一个 DBOpportunity 对象有多个 DBOpportunityLines 对象。假设最后一个条件

DBOpportunityLines.crmAccept == 1 OR DBOpportunityLines.crmAccept == 3

应该适用于任何的相关对象,您需要一个子查询:

NSDate *givenDate = ...;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"stateCode == 1 AND invoiceDate >= %@ "
"AND SUBQUERY(opportunitylines, $x, $x.crmAccept == 1 OR $x.crmAccept == 3).@count > 0",
givenDate];

备注:不幸的是,在谓词中使用 SUBQUERY 的文档很少。有 one example在 NSExpression 类引用中。另见 Quick Explanation of SUBQUERY in NSPredicate Expression .

关于ios - 具有关系的 CoreData NSPredicate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16728294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com