HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 谓词中出现“多对多密钥”这一问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_450_1@
我需要一些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 – 谓词中出现“多对多密钥”这一问题所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。