키 값 수집 함수를 NSExpression
과 결합 할 수 있습니까? CoreData와 함께 사용하여 관리 대상 객체 클래스의 값 중 최대 값을 얻었습니다.키 값 함수를 NSExpression과 결합
이제 NSSet
을 포함하는 다른 관리되는 개체 클래스가 있습니다. NSSet
에서 @sum 값의 최대 값을 찾고 싶습니다.
예를 들어, 나는 값의 NSSet을 가진 관리 객체가 10 개 있습니다. 각 집합의 값을 @sum하고 10 개의 관리 대상 개체 중 가장 큰 개체를 찾습니다.
나는 일반적으로 [object valueForKeyPath:@"[email protected]"]
을 사용하여 합계를 계산할 것입니다.
나는 결합하고 싶은 somethinge 같은 :
NSExpression *keyPathExpression = [NSExpression expressionForKeyPath:@"[email protected]"];
NSExpression *valueSumExpression = [NSExpression expressionForFunction:@"max:" arguments:[NSArray arrayWithObject:keyPathExpression]];
그것은
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid keypath element (not a relationship or attribute): @sum'
컬렉션 합계는 컬렉션이 아닌 단일 값입니다. 'max'는 컬렉션에만 의미가 있습니다. 무엇을 성취하려고합니까? –
그래, 내 게시물은 분명하지 않았다 : 나는 이것을 추가했다. "예를 들어, 나는 값이 NSSet 인 관리 객체가 10 개 있습니다. @sum 값을 각 세트에 넣고 최대 값을 찾고 싶습니다. 10 개의 관리 대상 개체 중 하나입니다. " – bandejapaisa
또한 오류는 실제로 : 캐치되지 않은 예외 'NSInvalidArgumentException'으로 인해 응용 프로그램을 종료합니다. 이유 : '유효하지 않은 keypath 요소 (관계 또는 특성이 아님) : @ um'. 그래서이 호출을 캡슐화하는 관리 대상 객체에 메서드를 추가하려고 시도했습니다. - (NSNumber *) weekTotal { return [self valueForKeyPath : @ "usageMetrics. @ sum.value"]; } ... 그리고 weekTotal이 관리 대상 객체에서 발견되지 않습니다 (일시적인 현상 일 가능성이 높습니다). – bandejapaisa