使用NSPredicate来添加所有值

Ceh*_*iro 1 iphone core-data nspredicate

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

Mon*_*olo 12

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

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

以下是如何完成的示例.为了使其自包含,使用硬编码数组代替核心数据:

// 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"];
Run Code Online (Sandbox Code Playgroud)

这里的技巧是@sum复合运算符.你可以读到它(和另一对夫妇类似的运营商)在这里.