2010-03-06 3 views

ответ

191

Используйте NSSortDescriptor как это ..

NSSortDescriptor * descriptor = [[NSSortDescriptor alloc] initWithKey:@"interest" ascending:YES]; 
stories = [stories sortedArrayUsingDescriptors:@[descriptor]]; 
recent = [stories copy]; 

stories это массив вы хотите отсортировать. recent - это другой изменяемый массив, который имеет отсортированные значения словаря. Измените значение @"interest" на ключевое значение, которое нужно сортировать.

Все лучшее

+2

+1 Это, безусловно, самый простой метод –

+0

Большое спасибо, имеет смысл и работает – iOSDevil

+11

Это хорошо, но это делает утечку. 1) дескриптор сортировки должен быть освобожден или автореализован и 2) вызов копирования не требуется, строка может быть удалена. –

0

Напишите функцию сортировки, которая сравнивает соответствующие поля в двух словарях. Если у вас есть эта версия, вы можете, например, использовать NSArray#sortedArrayUsingFunction:context: для сортировки вашего массива.

См NSArray Class Reference

25
[array sortUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]]; 

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

+0

NSSortDescriptor * дескриптор = [NSSortDescriptor sortDescriptorWithKey: @ "name" по возрастанию: YES]; [resultArray1 sortUsingDescriptors: [NSArray arrayWithObjects: descriptor, nil]]; – johndpope

+1

Лучший ответ .... !! – TheTiger

4

Update, sortUsingDescriptors теперь sortedArrayUsingDescriptors

Таким образом, его как:

items = [items sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]]; 
+0

Вы, кажется, сбиваете с толку - '[NSArray sortedArrayUsingDescriptors]' и - '[NSMutableArray sortUsingDescriptors]'. Последнее все еще существует и не было заменено. – Dalzhim

10

Вы можете просто траверс от родителя к требуемой собственности ребенка. Напр.

NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"parent.child.child" ascending:YES]; 
+0

Ты маленькая звезда. это помогло мне отсортировать словарь суб-словаря. Большое спасибо! – Rambatino

+0

может у плз проголосовать за это тогда –

+0

Это не ответит на вопрос! – Rambatino

0
array = [array sortedArrayUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]]; 

запомнить присвоить массив

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

  • Нет связанных вопросов^_^