2017-11-18 2 views
0

배열이 3 개 있습니다. 객체는 사전 유형입니다. 각 사전에는 다른 키가 있습니다. 이 배열을 알파벳순으로 정렬하고 싶습니다.알파벳 순서로 사전 배열 정렬

내 배열 구조는 내가 알파벳 순서로이를 정렬 할 수있는 방법

MyListArray:({Return=something;},{Departure=something;},{Both=something;}); 

다음과 같이인가?

+0

이 같은 출력을 원하는 : -'MyListArray : ({= 뭔가 모두;}, {= 뭔가 출발을}, {반환 = 뭔가를;});'??? –

+0

예. 예상 한 출력을 나타냅니다 –

+0

[Objective-C : 사전 항목을 기반으로하는 NSDictionary의 정렬 키] 가능한 복제본 (https://stackoverflow.com/questions/11554780/objective-c-sort-keys-of-nsdictionary- based-on-dictionary-entries) –

답변

1

sortedArrayUsingComparator:을 사용하고 비교기의 키를 비교하십시오. 열쇠는 allKeys의 첫 번째 키입니다.

NSArray *sortedArray = [myListArray sortedArrayUsingComparator:^(NSDictionary* _Nonnull obj1, NSDictionary* _Nonnull obj2) { 
    if (obj1.count == 0) { 
     if (obj2.count == 0) 
      return NSOrderedSame; 
     else 
      return NSOrderedAscending; 
    } 
    if (obj2.count == 0) 
     return NSOrderedDescending; 
    NSString *key1 = obj1.allKeys[0]; 
    NSString *key2 = obj2.allKeys[0]; 
    return [key1 compare:key2]; 
}];