ios – 谓词中出现“多对多密钥”这一问题

ios – 谓词中出现“多对多密钥”这一问题,第1张

概述我需要一些NSFetchedResultsController的谓词帮助.我的猜测是可以用SUBQUERY完成,但我无法弄清楚如何. NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Album"];fetchRequest.predicate = [NSPredicate predicateW 我需要一些NSFetchedResultsController的谓词帮助.我的猜测是可以用SUBquery完成,但我无法弄清楚如何.

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityname:@"Album"];fetchRequest.predicate = [nspredicate predicateWithFormat:@"ANY tracks.playListItems.playList == %@",section.playList];

当使用此谓词执行获取请求时,我得到“此处不允许多对多键”错误.这是有道理的,因为专辑有多个曲目,并且曲目有多个播放列表项.

因此,在这里使用自然语言是我想要的这个谓词:一个专辑,其中至少有一个音轨至少有一个播放列表具有以下播放列表.

我可以在谓词中使用SUBquery实现此目的吗?

(我知道这可以使用2个获取请求轻松实现,但我想知道是否可以使用一个请求完成此 *** 作,因为我使用的是NSFetchedResultsController)

解决方法 是的,你可以使用SUBquery来做到这一点.我曾经多次使用子查询,但我认为你的应该是这样的:

fetchRequest.predicate = [nspredicate predicateWithFormat:@"SUBquery(tracks,$t,ANY $t.playListItems.playList == %@).@count != 0",section.playList];
总结

以上是内存溢出为你收集整理的ios – 谓词中出现“多对多密钥”这一问题全部内容,希望文章能够帮你解决ios – 谓词中出现“多对多密钥”这一问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1057913.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存