我遇到了一个我无法解决的问题。我有一个“数据库” - 读取核心数据 - 其中我有一个值和级别的属性。
类似的东西
价值--------等级
55 ------------- 4
33 ------------- 4
50 ------------- 5
70 ------------- 6
44 ------------- 5
我现在想要的是仅从级别5中提取所有值并将它们一起添加。我怎样才能实现这一点?我确实在apple dev网站上找到了“获取不同的值”,但这适用于从一个属性中提取所有值。
帮助表示感谢,谢谢。如果我错过了类似的话题,那么请给我一个链接。谢谢
答案 0 :(得分: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];
您的数据的结果是
( { sumValue = 94; } )
即。包含一个字典的数组,其中包含level = 5的值之和。