2010-09-16 3 views
0

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

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

NSArray с CLASSA ClassB и класса С подклассами CLASSz

туАггау = {С, В, А}

Сортировка туАггау По убыванию: {A, B, C},

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

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

ответ

0

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

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

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

Смежные вопросы