У меня есть класс (но нет экземпляра), и мне нужно знать, соответствует ли он определенному протоколу. Однако класс может быть подклассифицирован несколько раз, и class_conformsToProtocol () игнорирует протоколы, объявленные в суперклассах.
Я мог бы просто использовать class_getSuperclass () и рекурсивно проверять все классы в иерархии вверх, пока суперкласс не станет нулевым. Однако мне интересно, может ли это быть неэффективным для глубоко вложенных иерархий классов, и, может быть, есть более лучший способ сделать это?
Другими словами, как лучше всего реализовать метод NSObject complianceToProtocol с использованием методов времени выполнения Objective-C, чтобы он находил протоколы в суперклассах?
[myObject conformsToProtocol:@protocol(MyProtocol)];
Если я на правильном пути, рекурсивно поднимаясь по иерархии классов, просто дайте мне знать.