Подтвердить что ты не робот

Objective C - Сортировка массива строк

Мне нужно отсортировать массив объектов по свойству объектов, являющихся строкой. Как я могу это сделать?

4b9b3361

Ответ 2

Для просто сортировки массива строк:

sorted = [array sortedArrayUsingSelector:@selector(compare:)];

Для сортировки объектов с ключом "имя":

NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES selector:@selector(compare:)];
sorted = [array sortedArrayUsingDescriptors:@[sort]];

Кроме того, вместо compare: вы можете использовать:

  • caseInsensitiveCompare:

  • localizedCaseInsensitiveCompare:

Ответ 3

Вот что я в итоге использовал; работает как шарм:

[categoryArray sortedArrayWithOptions:0
               usingComparator:^NSComparisonResult(id obj1, id obj2)
{
    id<SelectableCategory> cat1 = obj1;
    id<SelectableCategory> cat2 = obj2;
    return [cat1.name compare:cat2.name options:NSCaseInsensitiveSearch];
}];

SelectableCategory является просто a @protocol SelectableCategory <NSObject>, определяющим категорию со всеми ее свойствами и элементами.