2012-02-10 4 views
1

В моем NSArray у меня есть два типа объектов, скажем, объекты класса A и класса B. Я хочу сортировать эти объекты, сравнивая свойство «startDate» класса A с классом «endDate» класса B. И Я не знаю, как сделать сравнение, основанное на двух разных свойствах разных классов.Как отсортировать два разных объекта в NSArray?

Каков наилучший способ для этого?

ответ

2

блоки, что вы хотите, посмотрите на этот вопрос: How to sort an NSMutableArray with custom objects in it?

В примере блоков по этому вопросу, просто класса А использовать STARTINGDATE и класс B использовать дату окончания.

+0

Да, я видел это, но все блок-методы сравнивали объекты одного и того же типа. Я имею в виду, что аргументы блока - id obj1 и id obj2, но затем они передаются в одни и те же классы. Теперь, когда у меня есть два разных типа объектов, проблема с кастингом не будет проблемой? Как я узнаю, какой аргумент нужно отдать первому классу? – aslisabanci

+1

Вы можете проверить, какие классы obj1 и obj2 есть с помощью класса [[(obj1/obj2)] isSubclassofClass: [TargetClass class]], а затем справиться с соответствующим образом. –

+0

Конечно, но это довольно грязно. Я пойду так, если нет лучших вариантов, спасибо. – aslisabanci

0

я бы рекомендовал, если/иначе блок и использование инструкции

[MyObject isKindOfClass: [ClassA класс]]

который возвращает BOOL

Если вы» d (или в совокупности), Apple рекомендует использовать

[myObject отвечаетSolector: @sel ector (startDate)]

Который также возвращает BOOL.

Блоки данных не имеют отношения к действительности; Вы можете использовать этот шаблон проектирования внутри реализации простого метода, блоков, цикла for/while или где-либо еще.

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