Попытка отсортировать многомерный изменяемый массив с одним (целым) объектом - PullRequest
0 голосов
/ 27 апреля 2011

У меня есть многомерный NSMutableArray, и я хочу отсортировать его по одному из объектов. Массив создан так:

        [NSMutableArrayName addObjectsFromArray:[NSMutableArray arrayWithObjects:[NSMutableArray arrayWithObjects:name,[NSNumber numberWithInteger:x],nil],nil]];       

Я не могу найти способ сортировки всего массива по значению второго объекта (целое число x).

Помощь оценена как всегда.

1 Ответ

4 голосов
/ 27 апреля 2011

Звучит как хороший случай для 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...