2017-11-18 16 views
0

私は3つのオブジェクトの配列を持っています。オブジェクトは辞書の型のものです。各辞書には異なるキーがあります。この配列をアルファベット順に並べ替える必要があります。アルファベット順の辞書の並べ替え

私の配列構造は、私がアルファベット順にこれを並べ替えることができますどのように

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

次のようにありますか?

+0

あなたのような出力をしたい: - 'MyListArray:({=何かの両方;}、{ =何か出発;}、{リターン=何かを;});' ??? –

+0

Yes.Thats私の予想される出力 –

+0

[Objective-C:辞書エントリに基づくNSDictionaryのソートキー](https://stackoverflow.com/questions/11554780/objective-c-sort-keys-of-nsdictionary- –

答えて

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]; 
}]; 
関連する問題