我从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
或者我的谓词有问题。
答案 0 :(得分:0)
SUBQUERY结果应支持所有集合键路径运算符,或者至少文档建议如此。
错误消息似乎暗示代码中的谓词中包含逗号。它只是被框架修改了吗?
“@ min”返回一个数字。您要求的“.num”键是什么?某种定制属性? NSNumber是否通过类别支持?否则我不承认。您不需要(也不应该尝试)将NSNumber对象转换为原始C类型或类似的东西。
你有没有尝试过更像这样的东西:
“self.num == SUBQUERY(book,$ b,$ b.author == self.author)。@ min”?