2012-12-19 3 views
1
내가 개체에 대한 집계를하고있어

하고 코드는 다음과 같습니다 속성 NbPoints :마법 기록 : 합계 집계

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이 전무, 난 ... 왜

힌트를 모르는 내 엔터티에 NSNumber int이어야합니까?

+0

[interval.start value]가 필요합니까? 날짜가 전달 될 수 있다고 생각했습니다. 집계가없는 조건부가 데이터를 반환하는지 확인하기위한 또 다른 사항은 ... 모르는 상태에서 모든 것을 필터링 할 수 있습니다. – casademora

+0

이 술어 + [fetchedObjects valueForKeyPath : @ "@ sum.nbPoints"]로 MR_findall을 수행하면; 나는 내가 찾던 금액을 가지고있다. [간격. 시작 값]은 내 자신의 클래스이며 NSDate를 반환합니다. –

답변

2

MR에 대해서는 잘 모르지만 표준 코드 데이터에서는 집계 함수 앞에 @이 있어야합니다. 어쩌면 당신은 MR 문서에서 이것을보아야 할 것입니다. 당신은 모든 PointsEvent 개체의 배열을 얻을 수있는 경우

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

, 당신은 후 직접 계산할 수있는 가져 오기 : int32 또는 유사한 :

는 속성 데이터 유형으로
NSNumber *sum = [fetchedObjects valueForKeyPath:@"@sum.nbPoints"]; 

, 당신의 설정이 올바른 것 같습니다 핵심 데이터 모델의 float, NSManagedObject 하위 클래스의 NSNumber

+0

이것에 대한 문서를 찾지 못했습니다. 여기에 몇 가지 링크가 있습니다 (함수 코드 : https://github.com/magicalpanda/MagicalRecord/blob/master/MagicalRecord/Categories/NSManagedObject/NSManagedObject%2BMagicalAggregation.m, 공식 github 페이지 : https://github.com/magicalpanda/MagicalRecord) –

+0

문서화되지 않은 프레임 워크를 사용하기로 결정하신 것을 축하드립니다. 두 번째 해결책을 시도 했습니까? – Mundi

+0

yeap 그것이 작동하고있어! –