Сортировать словари в массиве? - PullRequest
2 голосов
/ 05 августа 2011

Мне нужно отсортировать nsmutablearray из nsdictionaries, используя ключевой объект из словаря. Объект является NSNumber. Как бы я отсортировал словари в nsmutablearray с первым объектом, являющимся самым большим nsnumber?

Спасибо!

Ответы [ 2 ]

5 голосов
/ 05 августа 2011

С помощью специального компаратора, определенного с помощью блока (вы можете пойти другим путем, но это довольно компактно):

NSComparator mysort = ^(id dict1, id dict2) {
    NSNumber n1 = [dict1 objectForKey:@"key"];
    NSNumber n2 = [dict2 objectForKey:@"key"];
    return (NSComparisonResult)[n1 compare:n2];
};

[yourArray sortUsingComparator:mysort];
1 голос
/ 09 января 2012

Этот код выглядит немного не так. Вот тот, который работает.

[theMutableArrayThatWillBeSorted sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
    NSNumber* n1 = [obj1 objectForKey:@"key"];
    NSNumber* n2 = [obj2 objectForKey:@"key"];

    return [n1 compare:n2];     
}];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...