2017-11-18 259 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-基于字典条目) –

回答

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]; 
}];