gpt4 book ai didi

ios - NSPredicate 获取具有两个一对多关系的实体

转载 作者:行者123 更新时间:2023-11-29 12:46:37 26 4
gpt4 key购买 nike

我有三个独立的实体,(r 是关系):

1) 货币

名字

_

国家(r 1 到许多)

2) 国家

名字

_

货币(r)

交流(r 1 到很多)

3) 交换

名字

_

国家(右)

从 CURRENCY 到 COUNTRY 的关系是一对多的。

从 COUNTRY 到 EXCHANGE 的关系是一对多的。

我需要在我的 NSFetchedResultsController 中加载所有 CURRENCY(不重复),其中 COUNTRY 至少有一个 EXCHANGE。

示例:

货币:欧元、美元、英镑、泰伯利亚(不存在!)

国家:法国、德国、意大利、美国、英国

交易所:Euronext(法国,欧元)、Xetra(德国,欧元)、米兰证券交易所(意大利,欧元)、伦敦证券交易所(英国,英镑)

预期结果是:英镑,欧元,美元

我试过类似的方法,但没有用:

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Currency"];
request.predicate = [NSPredicate predicateWithFormat: @"countries.exchanges.@count > 0"];

代码因未捕获的异常而崩溃:'NSInvalidArgumentException',原因:'不支持的函数表达式计数:(countries.exchanges)'

我应该使用什么是正确的NSPredicate

最佳答案

问题是嵌套的一对多关系,这需要使用 SUBQUERY:

[NSPredicate predicateWithFormat:@"SUBQUERY(countries, $c, ANY $c.exchanges != NULL).@count > 0"]

关于ios - NSPredicate 获取具有两个一对多关系的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23540867/

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