iPhone OS 3.1.3을 사용하는 iPod Touch에서 내 응용 프로그램의 사용자가 충돌 한 것을 추적했습니다 : 어떤 이유에서든 "@count : "CoreData 저장소의 표현식이 충돌을 일으키고 있습니다. 가, 내가 사고에 다음과 같은 오류가 수행 인출아이폰 OS 3.1.3이 적용된 iPod에서 명백한 @ count : 문제
NSExpression *avgExpression = [NSExpression expressionForFunction:@"average:" arguments:[NSArray arrayWithObject:keyPathExpression]];
NSExpressionDescription *ed = [[NSExpressionDescription alloc] init];
[ed setName:@"avgScalar"];
[ed setExpression:avgExpression];
[ed setExpressionResultType:NSFloatAttributeType];
NSExpression *countExpression = [NSExpression expressionForFunction:@"count:" arguments:[NSArray arrayWithObject:keyPathExpression]];
NSExpressionDescription *ed2 = [[NSExpressionDescription alloc] init];
[ed2 setName:@"countScalar"];
[ed2 setExpression:countExpression];
[ed2 setExpressionResultType:NSInteger16AttributeType];
[request setPropertiesToFetch:[NSArray arrayWithObjects:ed,ed2,nil]];
:
응용 프로그램을 종료* 인해 캐치되지 않는 예외 'NSInvalidArgumentException'에, 이유는 여기에 관련 코드의 '*가 -constantValue 추상 클래스에만 정의됩니다. 정의 - [NSKeyPathExpression constantValue]! '
가져 오기를 avgExpression (@ "평균 :")으로 제한하면 모두 정상적으로 작동합니다. iPhone OS 3.1.3을 사용하는 iPod Touch에서만 말할 수있는 한 @ "개수 :"표현에 대해 뭔가 이상한 점이 있습니다. 어떤 아이디어?
다른 방법으로 전체 페치를 수행하고 키 경로 연산자를 사용하여 필요한 평균 및 개수를 얻을 수 있습니다. 그러나이 방법이 훨씬 비쌉니다. 그것이 누구인지 아는 사람?