2012-02-21 4 views
0
높은

지금 내가 데려 갈거야 내 NSDictionary과 저, 고, 및 계산 평균을 찾기 위해 모든 값의 루프를 실행.IOS는 NSDictionary와 낮은 평균

저는 입니다. 따라서에서 IOS이 작업을 수행하는 더 좋은 방법이 있는지 물어보고 싶습니다. 거기 있니? 감사합니다..

+1

질문을 편집하여 코드에 붙여 넣으십시오. –

답변

4

이 질문에 대한 정확한 대답은 NSDictionary에있는 개체 유형에 따라 다릅니다. 대답은 일반적으로 키 - 값 코딩 연산자를 사용하여 원하는 작업을 수행 할 수 있다는 것입니다. 다음은 예입니다.

NSNumber *one = [NSNumber numberWithInt:1]; 
NSNumber *two = [NSNumber numberWithInt:2]; 
NSNumber *three = [NSNumber numberWithInt:3]; 

NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:one, @"apple", two, @"orange", three, @"pear", nil]; 
NSLog(@"The max number is %@", [[dictionary allValues] valueForKeyPath:@"@max.intValue"]); 
NSLog(@"The min number is %@", [[dictionary allValues] valueForKeyPath:@"@min.intValue"]); 
NSLog(@"The mean is %@", [[dictionary allValues] valueForKeyPath:@"@avg.intValue"]); 

이것은 아마도 직접 열거하는 것보다 효율적이지는 않지만 더 간결합니다.

NSDictionary의 내용이 속성으로 NSNumber가있는 사용자 정의 클래스의 객체 인 경우 @avg 뒤에 속성 이름을 삽입하여이 방법을 사용할 수 있습니다. @avg.myProperty. 이 valueForKeyPath 메서드는 NSNumber를 반환합니다.

0

사전을 나열하여 이미 수행하는 것보다 더 나은 방법은 없습니다. 이것은 주로 NSDictionary에 불투명 한 오브젝트가 있기 때문입니다. 그들은 NSString 일 수 있으며 NSNumber 일 수도 있고 CHZLolCat 일 수도 있습니다. 그들은 무엇이든 될 수 있습니다. 따라서 모든 것이 저, 높음 및 평균의 개념을 갖고 있지는 않기 때문에 낮고, 높고 평균적인 방법을 사용하는 것이 이치에 맞지 않습니다.

그러나 코드를 보여 주면 실제 열거 방법에 대한 구체적인 조언을 제공 할 수 있습니다.