Как использовать sortUsingFunction (или sortUsingSelector) для сортировки NSMutableArray объектов, содержащих массивы - PullRequest
1 голос
/ 27 января 2012

У меня есть NSMutableArray объектов модели.Каждый объект модели содержит NSArray из NSNumbers.Я хочу отсортировать объекты модели на основе наименьшего значения NSNumber из соответствующих им числовых массивов.

Каков наилучший способ реализовать это с помощью sortUsingFunction (или sortUsingSelector)?Я все еще поддерживаю iOS 3.2, поэтому я не могу использовать блоки.

В настоящее время я помечаю каждый объект модели наименьшим значением NSNumber, а затем использую NSSortDescriptor в ключе тега.... но я уверен, что есть лучший способ ...

1 Ответ

2 голосов
/ 28 января 2012

Я не уверен, что это самый чистый или самый эффективный способ сделать это, но вы можете написать метод для вашей модели класса - (NSComparisonResult)compare:(MyModel *)otherModel, который вы бы:

  1. Сортируйте NSArray из NSNumbers для объектов self и otherModel, используя sortedArrayUsingSelector:@selector(compare:)
  2. Получить объект NSNumber с индексом 0 для обоих из двух отсортированных массивов, созданных на шаге 1 (который будет самым низким значением в каждом массиве)
  3. Вернуть результат [lowestSelfNumber compare:lowestOtherNumber]

Затем вы можете отсортировать изменяемый массив с помощью sortUsingSelector:@selector(compare:)

...