Проблема сортировки NSArray с сокращениями, которые сортируются первыми - PullRequest
2 голосов
/ 04 февраля 2012

У меня есть NSArray, который я хотел бы отсортировать по алфавиту, и в настоящее время я использую sortedArrayUsingSelector:@selector (localizedCaseInsensitiveCompare:).Это возвращает

CAA
CBL
CCC
Cab
Car
Cat

Аббревиатуры сначала располагаются в алфавитном порядке, затем идут остальные.Что бы я использовал для сортировки так, чтобы аббревиатуры сортировались вместе с обычными словами?Не могу найти ответ в документах Apple.

book = [[self.sections valueForKey:[[[self.sections allKeys] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)] objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];

1 Ответ

0 голосов
/ 04 февраля 2012

Вы можете использовать

- (NSArray *)sortedArrayUsingComparator:(NSComparator)cmptr

И создать свой NSComparator для желаемого поведения.

Как это:

NSarray *sortedArray = [myArray sortedArrayUsingComparator:^(id obj1, id obj2) {
  //Decide in the order
  if (yourCondition)
  {
  return NSOrderedSame
  }
}];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...