2011-03-17 9 views
1

그런 문제가 있습니다. 나는이 NSMutableDictionaryNSMutableDictionary 및 NSArray

Object 10   Key 1 
Object 20   Key 2 
Object 30   Key 3 
Object 40   Key 4 
Object 50   Key 5 

그럼이 코드

NSArray*currentArray=[currentMutableDictionary allValues]; 

때 I 출력 전류 배열 I이 값 I가 올바른에 배열로 사전에서 obects을 추가 할 수있는 방법

20 
50 
30 
10 
40 

명령?

답장을 보내 주셔서 감사합니다.

+0

올바른 순서로 정확하게 무엇을 의미합니까? 키순으로 오름차순? 귀하의 예에서는 키가 1,2,3,4,5가됩니다. 실제 코드에서 임의로 지정할 수 있습니까? (그렇지 않다면, 사전이 실제로 올바른 데이터 구조인지 여부를 고려해보십시오!) –

답변

0

당신이있는 NSMutableArray를 대신하고 그에게 사용 addObjectAtIndex 방법을 반복 개체를 추가 할 수 있습니다

+0

그건 내 대답보다 (아마도) 덜 효율적입니다 .... –

2

이 밖으로 시도 :

NSInteger intSort(id num1, id num2, void *context) 
{ 
    int v1 = [num1 intValue]; 
    int v2 = [num2 intValue]; 
    if (v1 < v2) 
     return NSOrderedAscending; 
    else if (v1 > v2) 
     return NSOrderedDescending; 
    else 
     return NSOrderedSame; 
} 

NSArray *currentArray = [[currentMutableDictionary allValues] sortedArrayUsingFunction:intSort context:nil]; 
당신이 당신의 사전에서의 NSNumber 개체가 가정 적절히 배열을 정렬한다

.

+0

Upvoted 당신이 나를 때려 눕히는 때부터! –

+0

똑바로도 문서에서 :) –

+0

그 키에 의해보다는 값으로 개체를 정렬합니다. 안톤이 원했던 것이 궁금합니다. –

0

keysSortedByValueUsingComparator을 사용하여 정렬 된 순서로 키를 추출한 다음 값을 넣을 가변 배열을 만들어 objectsForKeys:notFoundMarker:을 사용하여 추출 할 수 있습니다.

+0

이 값을 사용하지 않고 개체를 사전에 키순으로 정렬하려고합니다. 값순으로 정렬하고 싶다면 Richard J. Ross III의 제안과 함께'allValues'를 사용하여 정렬하고 정렬하십시오. –