NSPredicates和double-n关系

时间:2009-08-13 20:21:05

标签: iphone core-data nspredicate

我有一个名为Album的核心数据实体;一张专辑与Song实体(称为歌曲)有关系,每首歌曲都有一个任意数量的Tag实体(在tags属性中),标签有一个名称。 现在我想检查相册中的任何歌曲是否包含标签;使用单个NSPredicate。

想到的一个想法是:

[NSPredicate predicateWithFormat: @"ANY (ANY songs).tags LIKE %@", someTagName];

但这会在运行时导致错误(“无法解析格式字符串”)。我尝试了各种变化,没有成功。

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

我想你想要

[NSPredicate predicateWithFormat:@"ANY songs.@unionOfSets.tags LIKE %@", someTagName]

查看set and array operators上的键值编程指南部分。

答案 1 :(得分:0)

只是一个想法,但也许iPhone上没有LIKE?我知道我在使用BETWEEN时遇到了困难,但这似乎不起作用。

所以标签与歌曲没有多对多的关系?如果以这种方式建模,获取标签的歌曲只需要访问属性tag.songs。你建模的方式似乎可以为每首歌复制标签(在你的应用中可能会很好)。