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

标签 ios core-data nspredicate nsfetchedresultscontroller

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

enter image description here

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

我的困难在于设置谓词。

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

最佳答案

首先,如果你想显示歌曲,那么你必须创建一个获取请求 在“歌曲”实体上:

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

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

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

关于ios - NSPredicate 使用实体的关系获取其他实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25453681/

相关文章:

ios - 使用iOS中的OCUnit在XCode 4.5中使用Core Data对象进行单元测试

core-data - 如何使用 NSPredicate 来过滤核心数据关系?

ios - ionic2 - 在 iOS v10 中嵌入没有声音的 youtube 视频播放

ios - 如何阻止 Alamofire 对 URL 参数进行编码

ios - 'QBChatRoom' 已弃用 : Use QBChatDialog instead

ios - "Warning: iPhone apps should include an armv6 architecture"即使设置了构建配置

ios - Swift 中的 NSlogging/println SQLite 数据库文件位置

iphone - 核心数据查询慢

cocoa - NSPredicate:搜索 NSNumber (Cocoa)

nspredicate - 如何过滤 NSMetadataQuery