3

我修改了 Apple 开发人员网站上的 CoreDataBooks 示例,并num在 entity 中添加了一个整数属性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或者我的谓词有问题。

4

1 回答 1

0

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

该错误消息似乎表明您的代码中的谓词中有一个逗号。它只是被框架修改了吗?

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

您是否尝试过更多类似的方法:

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

于 2012-12-04T00:52:25.683 回答