2013-03-20 3 views
0

У меня есть массив NSDictionary, как показано нижекак сортировать массив NSDictionary

array(
     { 
     Birthdate = "03/20"; 
     Names = "Abhinavswati Chaudhary"; 
     remain = 0; 
    }, 
     { 
     Birthdate = "09/22/1986"; 
     Names = "Aisa Soni"; 
     remain = 186; 
    }, 
     { 
     Birthdate = "03/02/1990"; 
     Names = "Anuj Parekh"; 
     remain = 347; 
    }, 
     { 
     Birthdate = "05/22/1988"; 
     Names = "Ajay Desai"; 
     remain = 63; 
    } 
) 

как я могу отсортировать этот массив в порядке возрастания с соответствии остаться , например он должен быть как

array(
     { 
     birthdate=... 
     name =abhivan 
     remanin =0; 
    }, 
     { 
     brithdate = "05/22/1988"; 
     name =ajay 
     remain =63 
    }, 
     { 
     and so on.... 

плз предложите какой-то код заблаговременно.

Когда мы используем NSsortDiscripor, тогда вам нужно быть NSNumber, может быть, это причина того, что мои остающиеся числа являются действующими союзная струна?

+0

вы получили ответ? – Balu

+0

Солнечный мой брат позвольте мне попробовать :) – user2189388

+0

массив порядок получить изменен, но не в восходящем его только что изменилось случайно – user2189388

ответ

2

Это довольно просто, используя метод NSArray sortedArrayUsingComparator.
В вашем случае это должно выглядеть следующим образом:

yourArray = [yourArray sortedArrayUsingComparator:^NSComparisonResult(NSDictionary *obj1, NSDictionary *obj2) { 
    // get values 
    NSNumber *remain1 = obj1[@"remain"]; 
    NSNumber *remain2 = obj2[@"remain"]; 

    return [remain1 compare:remain2]; 
}]; 
+0

В моем массиве содержится Dic, так что изменит ли он весь объединенный элемент dic или он изменится, останется? – user2189388

+0

он изменит dicts, отсортированные по "останутся" – yinkou

Смежные вопросы