我们可以根据coredata中To To的关系值应用过滤/排序或获取记录吗?

时间:2017-02-14 05:49:28

标签: core-data

我们是否可以根据多个/多级实体中的关系值对核心数据中的多个应用过滤/排序或获取记录?

1 个答案:

答案 0 :(得分:0)

是的,你可以,但你必须使用ANY或ALL关键字来实现多对多关系。还有一些问题需要注意。

如果在NSFetchedResultsController中使用此谓词,则对关系的更改不会触发fetchedResultsController的更改。例如,如果你有一个fetchedResultsController来选择带谓词的所有摇滚歌曲 [NSPredicate predicateWithFormat:@"ANY musicCollection.genre == %@", @"Rock"]如果您为歌曲设置了musicCollection,则会触发fetchedResultsController,但如果您更改musicCollection的类型则不会触发。

第二个问题是,如果您要根据关系属性的多个条件进行选择,那么您应该使用SUBQUERY。否则会导致每个谓词出现多个错误。