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 は nil です。理由はわかりません...

ヒント: 私のエンティティの属性 NbPoints は NSNumber であり、int である必要がありますか?

4

1 に答える 1

2

MR についてはわかりませんが、標準の Cord Data では、集計関数の前に@. MR のドキュメントでこれを調べる必要があるかもしれません。

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

すべてのPointsEventエンティティの配列を取得できる場合は、フェッチ後に自分で計算できます。

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

属性データ型に関しては、セットアップは正しいようです:サブクラスのCore Data モデルint32または同様です。floatNSNumberNSManagedObject

于 2012-12-20T11:35:04.930 に答える