秩序的NSArray - 目标C

问题描述:

我有字典的一个数组,看起来像这样秩序的NSArray - 目标C

({order:1; name:foo},{order:0; name:bar}...) 

而且我想通过密钥“订单”来订购此NSArray字典。

我知道我将不得不循环它,然后将其添加到一个新的数组,但林不知道如何设置它?

感谢您的帮助

有几种可能的方式来做到这一点。

这里有一个:

NSArray *unsortedArray = ... // your unsorted array of dictionaries 
NSSortDescriptor *sortBy = [NSSortDescriptor sortDescriptorWithKey:@"order" ascending:YES]; 
NSArray *sorted = [unsortedArray sortedArrayUsingDescriptors:@[ sortBy ]]; 

下面是另一个:

NSArray *unsortedArray = ... // your unsorted array of dictionaries 
NSArray *sorted = [unsortedArray sortedArrayUsingComparator:^NSComparisonResult(NSDictionary *dic1, NSDictionary *dic2) { 
    NSNumber *order1 = dic1[@"order"]; 
    NSNumber *order2 = dic2[@"order"]; 

    return [order1 compare:order2]; 
}];