首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有多对多关系的核心Data NSPredicate

具有多对多关系的核心Data NSPredicate
EN

Stack Overflow用户
提问于 2013-03-31 04:03:15
回答 1查看 2.2K关注 0票数 5

我在CoreData中有两个实体,分别是用户和优惠券,它们是多对多的关系。我想获取除user.userId = 1所拥有的优惠券之外的所有优惠券,其中userId为NSString。

我使用:[NSPredicate predicateWithFormat:@"NOT(ANY couponOwners.userId = %@)", @"4"];作为我的fetchedResultsController的谓词

而不是用正确的结果进行过滤。优惠券的couponOwners中的一个用户仍具有userId = 4。

有人能帮帮忙吗?我已经被困了很长一段时间。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-31 04:39:36

带有"NOT ANY“的核心数据谓词不起作用(这似乎是一个核心数据bug)。实际上

代码语言:javascript
复制
[NSPredicate predicateWithFormat:@"NOT(ANY couponOwners.userId = %@)", @"4"];

返回与相同的结果集

代码语言:javascript
复制
[NSPredicate predicateWithFormat:@"ANY couponOwners.userId != %@", @"4"];

这当然是错误的。作为解决方法,您可以使用SUBQUERY:

代码语言:javascript
复制
[NSPredicate predicateWithFormat:@"SUBQUERY(couponOwners, $c, $c.userId == %@).@count == 0", @"4"]
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15722930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档