0

我遇到了一个我无法解决的问题。我有一个“数据库”——读取核心数据——我有一个包含值和级别的属性。
类似那个

值-------- level
55 -------------4
33 -------------4
50 ------ -------5
70 -------------6
44 -------------5

我现在想要的是从级别中提取所有值仅 5 并将它们加在一起。我怎样才能做到这一点?我确实在苹果开发网站上找到了“获取不同的值”,但这适用于从一个属性中提取所有值。

帮助表示赞赏,谢谢。如果我错过了类似的主题,请给我一个链接。谢谢

4

1 回答 1

0

您可以使用以下获取请求:

// Fetch request for your entity:
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Entity"];
[request setResultType:NSDictionaryResultType];

// Restrict result to "level == 5":
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"level == %d", 5];
[request setPredicate:predicate];

// Expression description for "@sum.value":
NSExpression *sumExpression = [NSExpression expressionForKeyPath:@"@sum.value"];
NSExpressionDescription *expressionDescription = [[NSExpressionDescription alloc] init];
[expressionDescription setName:@"sumValue"];
[expressionDescription setExpression:sumExpression];
[expressionDescription setExpressionResultType:NSInteger32AttributeType];
[request setPropertiesToFetch:@[expressionDescription]];

NSArray *result = [context executeFetchRequest:request error:&error];

您的数据的结果是

(
    {
        总和 = 94;
    }
)

即一个数组,其中包含一个字典,其值的总和为 level=5。

于 2013-05-18T22:51:34.440 回答