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