我正在对实体进行聚合,代码是:
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?
答案 0 :(得分:2)
我不了解MR,但在标准的Cord数据中,聚合函数必须以@
开头。也许您应该在MR文档中查看。
...MR_aggregateOperation:@"@sum"... // ???
如果你能得到所有PointsEvent
个实体的数组,你可以在获取之后自己计算:
NSNumber *sum = [fetchedObjects valueForKeyPath:@"@sum.nbPoints"];
对于属性数据类型,您的设置似乎正确:int32
或核心数据模型中的类似或float
,NSNumber
子类中的NSManagedObject
。