我有一个使用核心数据的程序。在循环中添加每个实体的数值时,我有点作弊。我阅读了有关使用 NSPredicate 过滤数据的信息,但我不知道如何操作数据或如何存储结果。谢谢。
问问题
1989 次
2 回答
13
如果符合您的要求,您可以分两步完成。
- 首先使用您的过滤数据
NSPredicate
并将其全部保存在NSArray
. - 然后使用带有键值编码的复合运算符来获得总和。
以下是如何完成的示例。为了使其自包含,使用硬编码数组代替 Core Data:
// 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
复合运算符。您可以在此处了解它(以及另外几个类似的运算符)。
于 2012-08-13T10:17:50.133 回答
1
您可以使用 NSExpressionDescription 让 Core Data 进行求和。当我做类似的事情时,我将这篇文章用作教程。
于 2012-08-13T03:06:23.727 回答