Как я могу отсортировать NSMutableArray, содержащий NSDictionary's по числовым значениям? - PullRequest
1 голос
/ 20 марта 2012

По сути, у меня есть NSMutableArray, который содержит несколько NSDictionaries.Я хочу отсортировать этот массив на основе одного из числовых значений, которые появляются в каждом из NSDictionaries.

Например, если бы все они были NSDictionaries:

dict_1
{
    some_val,         @"blah"
    some_other_val,   135
}

dict_2
{
    some_val,         @"blah"
    some_other_val,   10
}

dict_3
{
    some_val,         @"blah"
    some_other_val,   35
}

Затем я хочу отсортировать их по значению "some_other_val".Я попытался сделать это, используя дескрипторы сортировки, однако я представляю мне неправильные результаты.Вот код, который я использую для сортировки массива:

NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"some_other_val" ascending:NO];
        [myArray sortUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];

Как я уже говорил, это не дает ожидаемого результата.Вот результаты такого рода:

Before:
135
10
35

After:
35
135
10

Насколько я могу судить, он просто пытается отсортировать значения, как если бы они были строками.Я посмотрел онлайн, чтобы узнать, смогу ли я найти решение этой проблемы, но я зашел в тупик.

Пожалуйста, кто-нибудь может дать какой-нибудь совет?

Ответы [ 2 ]

2 голосов
/ 20 марта 2012

Я думаю, что для этого есть несколько форм, первый вариант:

Я думаю, что если вы добавите some_other_val в словарь как NSNumber, вы можете получить желаемый результат без изменения остальных.

Я буду искать других.

2 голосов
/ 20 марта 2012

Почему бы просто не использовать один из других методов, таких как sortUsingFunction:context: или sortUsingComparator:?

...