我们是否可以根据多个/多级实体中的关系值对核心数据中的多个应用过滤/排序或获取记录?
答案 0 :(得分:0)
是的,你可以,但你必须使用ANY或ALL关键字来实现多对多关系。还有一些问题需要注意。
如果在NSFetchedResultsController
中使用此谓词,则对关系的更改不会触发fetchedResultsController的更改。例如,如果你有一个fetchedResultsController来选择带谓词的所有摇滚歌曲
[NSPredicate predicateWithFormat:@"ANY musicCollection.genre == %@", @"Rock"]
如果您为歌曲设置了musicCollection,则会触发fetchedResultsController,但如果您更改musicCollection的类型则不会触发。
第二个问题是,如果您要根据关系属性的多个条件进行选择,那么您应该使用SUBQUERY
。否则会导致每个谓词出现多个错误。