Время выполнения Objective C: лучший способ проверить, соответствует ли класс протоколу?

У меня есть Класс (но никакой экземпляр), и должен знать, соответствует ли он определенному протоколу. Однако Класс может несколько раз разделяться на подклассы, и class_conformsToProtocol () игнорирует протоколы, объявленные на суперклассах.

Я мог просто использовать class_getSuperclass () и рекурсивно проверить все классы в иерархию вверх, пока суперкласс не является нолем. Однако интересно, могло ли это быть неэффективно для глубоко вложенных иерархий классов, и возможно существует более хороший способ сделать это?

Другими словами, как метод NSObject conformsToProtocol лучше всего реализованные методы времени выполнения Objective C использования так, чтобы он нашел протоколы на суперклассах?

 [myObject conformsToProtocol:@protocol(MyProtocol)];

Если я на правильном пути с рекурсивным восстановлением работоспособности иерархии классов, просто сообщенной мне.

170
задан LearnCocos2D 8 August 2010 в 22:06
поделиться