【发布时间】:2011-03-27 01:28:39
【问题描述】:
我有一个类(但没有实例),需要知道它是否符合某个协议。但是,Class 可以被子类化多次,并且 class_conformsToProtocol() 会忽略在超类上声明的协议。
我可以只使用 class_getSuperclass() 并向上递归检查层次结构中的所有类,直到超类为零。但是我想知道这对于深度嵌套的类层次结构是否效率低下,也许有更好的方法来做到这一点?
换句话说,NSObject 方法conformsToProtocol 如何最好地使用Objective-C 运行时方法实现,以便在超类上找到协议?
[myObject conformsToProtocol:@protocol(MyProtocol)];
如果我在递归向上类层次结构的正确轨道上,请告诉我。
【问题讨论】:
标签: objective-c runtime