Как отсортировать NSArray объектов по их классу? - PullRequest
0 голосов
/ 16 сентября 2010

У меня есть NSArray объектов, которые все подклассы с их различными типами из более абстрактного класса.

Я бы хотел отсортировать массив по типу класса объекта. Например:

NSArray с CLASSA CLASSB И CLASS C подклассами из CLASSz

myArray = {C, B, A}

Сортировать по убыванию myArray: {A, B, C}

Я вижу дескрипторы сортировки, и кажется, что это правильный путь, но я сравниваю isKindOfClass, который не является свойством, поэтому его нельзя использовать в NSSortDescriptiors.

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 16 сентября 2010

Ну, самое большое препятствие, которое я вижу, это то, что вам, вероятно, понадобится пользовательское свойство для Class объектов, которое вы можете использовать в качестве ключа NSSortDescriptor. К сожалению, нет реального способа добавить методы / категории к Class объектам.

Итак, я бы, вероятно, использовал NSStringFromClass() для преобразования ваших Class объектов в строки, затем используйте категорию NSString, чтобы добавить собственный метод сравнения (что-то вроде compareToClass:), который преобразует строку обратно в Class, выполняет определение подкласса, а затем возвращает соответствующую константу упорядочения.

Оттуда вы можете использовать NSArray метод sortedArrayUsingSelector:, чтобы привести их в порядок.

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