クラス(インスタンスはありません)があり、それが特定のプロトコルに準拠しているかどうかを知る必要があります。ただし、Classは何度もサブクラス化でき、class_conformsToProtocol()はスーパークラスで宣言されたプロトコルを無視します。
私はclass_getSuperclass()を使用して、スーパークラスがnilになるまで、階層内のすべてのクラスを再帰的にチェックすることができます。しかし、それは深くネストされたクラス階層にとって非効率的かもしれないのではないかと思います、そしておそらくそれを行うより良い方法があるでしょうか?
言い換えると、NSObjectメソッドはスーパークラスのプロトコルを見つけるためにObjective-Cランタイムメソッドを使用してどのようにしてconformsToProtocolを最適に実装するのですか?
[myObject conformsToProtocol:@protocol(MyProtocol)];
クラス階層を再帰的に上っていく正しい方向に進んでいる場合は、お知らせください。