我有一个模型'钢笔',它有这样的属性:"makerName"和"Count".我怎样才能得到所有'计数'的总和?核心数据可以算我吗?谢谢...
Mad*_*nRP 10
是的,您可以从核心数据中获取这些数据,而不是获取和评估结果.您可以使用NSExpression执行诸如对核心数据求和之类的功能.
NSExpression *keyPathExpression = [NSExpression expressionForKeyPath:@"Count"];
NSExpression *sumOfCountExpression = [NSExpression expressionForFunction:@"sum:"
arguments:[NSArray arrayWithObject:keyPathExpression]];
Run Code Online (Sandbox Code Playgroud)
有关可以使用的功能列表,请转到此处
然后,您需要创建一个NSExpressionDescription对象,您可以在其中设置刚刚创建的sumOfCountExpression的表达式.
NSExpressionDescription *expressionDescription = [[NSExpressionDescription alloc] init];
[expressionDescription setName:@"sumOfCount"];
[expressionDescription setExpression:sumOfCountExpression];
[expressionDescription setExpressionResultType:NSDoubleAttributeType];
Run Code Online (Sandbox Code Playgroud)
然后像往常一样构造您的请求,然后将属性设置为获取到该表达式.
[request setPropertiesToFetch:[NSArray arrayWithObject:expressionDescription]];
Run Code Online (Sandbox Code Playgroud)
参考:核心数据编程指南
有两种方法可以解决这个问题:
首先 - 将数据提供给NSSet或NSArray并使用@sum运算符:
//assume that `pens` are NSArray of Pen
NSNumber *countSum=[pens valueForKeyPath:"@sum.count"];
Run Code Online (Sandbox Code Playgroud)
第二种是使用特定值的特定提取,并添加带有和的NSExpressionDescription.对于较大的数据库,这种方式更难但更好
| 归档时间: |
|
| 查看次数: |
4297 次 |
| 最近记录: |