1

我有一个使用核心数据的程序。在循环中添加每个实体的数值时,我有点作弊。我阅读了有关使用 NSPredicate 过滤数据的信息,但我不知道如何操作数据或如何存储结果。谢谢。

4

2 回答 2

13

如果符合您的要求,您可以分两步完成。

  1. 首先使用您的过滤数据NSPredicate并将其全部保存在NSArray.
  2. 然后使用带有键值编码的复合运算符来获得总和。

以下是如何完成的示例。为了使其自包含,使用硬编码数组代替 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 回答