2013-05-03 2 views
1

NSPredicate를 구성하는 방법이 있습니까? 예를 들어 5보다 큰 평균 점수로 다음 배열을 필터링 할 수 있습니까?@avg 수집 연산자가있는 NSPredicate의 형식 문자열

NSArray *objs = @[ 
@{@"scores":@[@3, @5, @2]}, 
@{@"scores":@[@5, @2, @8, @9]}, 
@{@"scores":@[@7, @1, @4]} 
]; 

I이 하나가 가장 유망한 같았다 다양한 조합, 시도 (고려를 정상적인 KVC 통해 어레이로 수치의 평균값을 얻기 위해 작동 @avg.self 키 경로)

NSPredicate *pred = [NSPredicate predicateWithFormat:@"[email protected] > 5"]; 
NSArray  *filterd = [objs filteredArrayUsingPredicate:pred]; 

NSUnknownKeyException : 내가 얻을

런타임 오류는 다음과 같다 ', 이유 :'[< __NSArrayI 0x10011b7c0> valueForUndefinedKey :] :이 클래스 코딩 호환 키 평균에 대한 키 값이 없습니다.

이 술어 스트링은 다음과 같습니다. [email protected] > 3, 적어도 그 콜렉션 연 j자는 술어에서 사용될 수 있습니다.

답변

0

@aLevelOfIndirection이 사용자에게 응답 했으므로 selfdoubleValue으로 바꿔야합니다. 숫자입니다.

컬렉션에 KVC 운영자를 설명하는 유용한 문서가 있습니다. http://nshipster.com/kvc-collection-operators/