我有一个使用核心数据的程序。在循环中添加每个实体的数值时,我有点作弊。我读到了使用NSPredicate来过滤数据,但我不知道如何操纵数据或如何存储结果。谢谢。
答案 0 :(得分:12)
如果符合您的要求,您可以分两步完成。
NSPredicate
过滤您的数据,并将其全部保存在NSArray
。以下是如何完成的示例。为了使其自包含,使用硬编码数组代替核心数据:
// In reality this array would be the result of a Core Data query:
NSArray *numbers = @[@{@"number":@3},
@{@"number":@2}];
NSNumber *sum = [numbers valueForKeyPath:@"@sum.number"];
这里的诀窍是@sum
复合运算符。您可以阅读它(以及另外几个类似的运算符)here。
答案 1 :(得分:1)
您可以使用NSExpressionDescription让Core Data进行求和。我在做类似的事情时使用this article as a tutorial。