魔法记录:总和汇总

时间:2012-12-19 16:40:50

标签: objective-c core-data magicalrecord

我正在对实体进行聚合,代码是:

 NSPredicate *betweenInterval = [NSPredicate predicateWithFormat:@"(date >= %@) AND (date < %@)", [interval.start value], [interval.end value]];

 NSNumber * nbPoints = [OMSPointsEventEntity MR_aggregateOperation:@"sum:" onAttribute:@"nbPoints" withPredicate:betweenInterval];

 return [nbPoints intValue];

NbPoints是零,我不知道为什么......

提示:我的实体的属性NbPoints是NSNumber,如果它是一个int?

1 个答案:

答案 0 :(得分:2)

我不了解MR,但在标准的Cord数据中,聚合函数必须以@开头。也许您应该在MR文档中查看。

...MR_aggregateOperation:@"@sum"... // ???

如果你能得到所有PointsEvent个实体的数组,你可以在获取之后自己计算:

NSNumber *sum = [fetchedObjects valueForKeyPath:@"@sum.nbPoints"]; 

对于属性数据类型,您的设置似乎正确:int32或核心数据模型中的类似或floatNSNumber子类中的NSManagedObject