NSPredicate使用实体的关系获取其他实体

时间:2014-08-22 18:47:43

标签: ios core-data nspredicate nsfetchedresultscontroller

好的,这是我模特的一部分:

enter image description here

我有一个使用NSFetchedResultsController填充的TableViewController。在TableViewController中,我想显示属于特定播放列表的所有歌曲。我希望通过某种方式获取播放列表歌曲关系所指向的所有歌曲实体来实现此目的。这个TableViewController有一个播放列表对象的引用(虽然我怀疑这对我有帮助)。

我的困难在于建立谓词。

    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Playlist"];
    request.predicate = [NSPredicate predicateWithFormat:@"(self.playlistSongs)"];

1 个答案:

答案 0 :(得分:2)

首先,如果要显示歌曲,则必须创建提取请求 关于“歌曲”实体:

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Song"];

要将结果限制为给定播放列表的歌曲,请使用“歌曲”中的关系 到“播放列表”。这是 to-many 关系,因此您必须指定“ANY”:

request.predicate = [NSPredicate predicateWithFormat:@"ANY playListIAmIn == %@", selectedPlaylist];
相关问题