我有一个Class(但没有实例),需要知道它是否符合某个协议。但是,类可以被子类化多次,并且class_conformsToProtocol()会忽略在超类上声明的协议。
我可以只使用class_getSuperclass()并递归地检查层次结构中的所有类,直到超类为nil。但是,我想知道这对于深度嵌套的类层次结构是否效率不高,也许有更好的方法可以做到这一点?
换句话说,如何使用Objective-C运行时方法最好地实现NSObject方法conformsToProtocol,以便它可以找到超类上的协议?
[myObject conformsToProtocol:@protocol(MyProtocol)];
如果我在正确的方向上递归地进行类层次结构研究,请告诉我。