Существуют разные методы сортировки для NSArray, потому что могут быть разные способы сортировки.NSSortDescriptors - это общий способ, который дает вам множество опций в отношении того, какие ключи использовать при сортировке, какие селекторы вы хотите использовать для этих ключей, а также общий порядок их использования и т. Д. Или вместо этого вы можете использовать функции или блоки сравнения, есливаш случай требует этого или, если это более удобно для вашего конкретного случая.
Чтобы ответить на ваш первый вопрос, если вы хотите, чтобы сегодня был первый, а затем вчера, тогда да, это, конечно, в порядке убывания.
Чтобы отсортировать некоторые даты в порядке убывания, вы можете просто сделать это: (при условии, что NSArray полон NSDates под названием dateArray):
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"self" ascending:NO];
NSArray *descriptors = [NSArray arrayWithObject: descriptor];
[descriptor release];
NSArray *reverseOrder = [dateArray sortedArrayUsingDescriptors:descriptors];
Или, если вы создаете для iOS 4+ илиСнежный барс + вы можете сделать это:
NSArray *reverseOrderUsingComparator = [dateArray sortedArrayUsingComparator:
^(id obj1, id obj2) {
return [obj2 compare:obj1]; // note reversed comparison here
}];