2011-04-05 3 views
1

내 응용 프로그램에서 예를 들어 A, B, C 등의 정렬되지 않은 26 자의 키 AZ를 포함하는 사전이 있습니다. 사전 정렬 키 사전 순으로 정렬하고 각 키와 관련된 데이터를 정렬 한 다음 다시 동일한 사전에 저장합니다.NSMutableDictionary 데이터 정렬

NSArray *myKeys = [mGlossaryDict allKeys]; 
NSArray *op = [myKeys sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]; 

지금 여기까지 나는 분류되는 Mutabledictionary 인 mGlossaryDict을 가지고 있지만 난 키의 각각에서 데이터를 정렬해야합니다. 도와주세요.

답변

3
NSArray *myKeys = [mGlossaryDict allKeys]; 
NSArray *sortedKeys = [myKeys sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]; 
NSMutableArray *sortedValues = [[[NSMutableArray alloc] init] autorelease]; 

for(id key in sortedKeys) { 
    id object = [myGlossaryDict objectForKey:key]; 
    [sortedValues addObject:object]; 
} 
+0

여기서 키는 정렬되지만 키 안의 데이터는 정렬되지 않습니다. –

+0

귀하의 질문에 귀하가하고자하는 바가 명확하게 설명되어 있지 않습니다. NSDictionary를 정렬하는 것은 의미가 없으므로 모든 값이 키순으로 정렬 된 배열을 원한다고 생각했습니다. – pt2ph8

+0

마치 데이터베이스에서 데이터를 검색하고 사전을 채우는 것과 같이 정렬이 필요하므로 사전을 tableview에로드하는 것과 같습니다. 이제 사전의 데이터가 정렬 된 순서로 표시되지 않습니다. 예. 여기서 "A"와 "A"는 "A"가 먼저 표시된다는 것을 의미합니다. 첫 번째 문자 대문자가있는 모든 문자가 먼저 표시되고 나머지는 표시됩니다. –