我有一个名为Album的核心数据实体;一张专辑与Song实体(称为歌曲)有关系,每首歌曲都有一个任意数量的Tag实体(在tags属性中),标签有一个名称。 现在我想检查相册中的任何歌曲是否包含标签;使用单个NSPredicate。
想到的一个想法是:
[NSPredicate predicateWithFormat: @"ANY (ANY songs).tags LIKE %@", someTagName];
但这会在运行时导致错误(“无法解析格式字符串”)。我尝试了各种变化,没有成功。
有没有办法做到这一点?
答案 0 :(得分:0)
我想你想要
[NSPredicate predicateWithFormat:@"ANY songs.@unionOfSets.tags LIKE %@", someTagName]
查看set and array operators上的键值编程指南部分。
答案 1 :(得分:0)
只是一个想法,但也许iPhone上没有LIKE?我知道我在使用BETWEEN时遇到了困难,但这似乎不起作用。
所以标签与歌曲没有多对多的关系?如果以这种方式建模,获取标签的歌曲只需要访问属性tag.songs。你建模的方式似乎可以为每首歌复制标签(在你的应用中可能会很好)。