#iphone #sorting #sdk #multidimensional-array
#iPhone #сортировка #sdk #многомерный массив
Вопрос:
У меня есть многомерный NSMutableArray, и я хочу отсортировать его по одному из объектов. Массив создается таким:
[NSMutableArrayName addObjectsFromArray:[NSMutableArray arrayWithObjects:[NSMutableArray arrayWithObjects:name,[NSNumber numberWithInteger:x],nil],nil]];
Я не могу найти способ отсортировать весь массив, используя значение второго объекта (целое число x).
Помощь, как всегда, приветствуется.
Ответ №1:
Это звучит как хороший аргумент для sortUsingComparator:
. Вы используете это примерно так:
[NSMutableArrayName sortUsingComparator:^NSComparisonResult(id o1, id o2){
NSInteger a = [[o1 objectAtIndex:1] integerValue]; // Or however to extract the int from your array element
NSInteger b = [[o2 objectAtIndex:1] integerValue];
if (a < b) return NSOrderedAscending;
if (a > b) return NSOrderedDescending;
return NSOrderedSame;
}];
Если вы ориентируетесь на версию до iOS 4.0, вы можете выполнить почти то же самое, используя sortUsingFunction:context:
и поместив содержимое блока в функцию в стиле C.
Комментарии:
1. Вау. Это действительно впечатляет и отлично работает. Спасибо Anomie