1

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

Например, если бы они были все 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 

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

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

+0

Вы можете изменить тип файла "some_other_val"? – LuisEspinoza

+0

Я не уверен, что полностью понимаю, что вы имеете в виду, однако я могу внести изменения в NSDictionary, если это необходимо. –

ответ

2

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

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

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

+0

user1118321 дал вам еще один отличный совет, вы можете использовать пользовательскую функцию сортировки для выполнения сортировки. – LuisEspinoza

2

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

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