
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 – 谓词中出现“多对多密钥”这一问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)