1

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

 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 吗?

4

1 回答 1

2

我不了解 MR,但在标准 Cord Data 中,聚合函数必须以@. 也许您应该在 MR 文档中查找此内容。

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

如果您可以获得所有PointsEvent实体的数组,则可以在获取后自行计算:

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

至于属性数据类型,您的设置似乎是正确的:int32或类似或在您的子类float中的核心数据模型中。NSNumberNSManagedObject

于 2012-12-20T11:35:04.930 回答