2015-08-21 4 views
-1

У меня есть массив словарей, который выглядит примерно такЗаказать NSArray словарей - Цель с

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

И я хочу заказать этот NSArray словарей с помощью ключа «порядка».

Я знаю, что мне нужно будет зациклиться на нем, а затем добавить его в новый массив, но я не совсем уверен, как его настроить?

Спасибо за помощь

ответ

3

Существует несколько возможных способов сделать это.

Вот один:

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