NSPredicate中使用的SUBQUERY()是否不支持@ max,@ min等所有集合运算符?

时间:2012-08-31 11:17:05

标签: core-data subquery nspredicate

我从Apple的开发者网站修改了一个示例CoreDataBooks,并添加了一个属性num,它是实体Book中的整数。

NSPredicate *predicate = [NSPredicate predicateWithFormat:"SUBQUERY(book, $b, $b.author == self.author).@min.num == self.num"];

我使用这个NSPredicate来获取所有同一作者书籍中元素数量最少的书籍,但我收到此错误:

  

'NSInvalidArgumentException',原因:'不支持的KVC函数   尾随keypath SUBQUERY(book,$ b,$ b.author == author),@ min.num'

我想知道子查询是否不支持@max@min或者我的谓词有问题。

1 个答案:

答案 0 :(得分:0)

SUBQUERY结果应支持所有集合键路径运算符,或者至少文档建议如此。

错误消息似乎暗示代码中的谓词中包含逗号。它只是被框架修改了吗?

“@ min”返回一个数字。您要求的“.num”键是什么?某种定制属性? NSNumber是否通过类别支持?否则我不承认。您不需要(也不应该尝试)将NSNumber对象转换为原始C类型或类似的东西。

你有没有尝试过更像这样的东西:

“self.num == SUBQUERY(book,$ b,$ b.author == self.author)。@ min”?