Ho una classe (ma nessuna istanza) e ho bisogno di sapere se è conforme ad un certo protocollo. Tuttavia, Class può essere sottoclasse più volte e class_conformsToProtocol() ignora i protocolli dichiarati sulle superclassi.Runtime Objective-C: il modo migliore per verificare se la classe è conforme al protocollo?
Potrei semplicemente usare class_getSuperclass() e controllare in modo ricorsivo tutte le classi nella gerarchia verso l'alto finché la superclasse è nulla. Tuttavia mi chiedo se questo potrebbe essere inefficiente per gerarchie di classi profondamente annidate, e forse c'è un modo più bello per farlo?
In altre parole, in che modo il metodo NSObject si conforma a Protocollo migliore implementato utilizzando i metodi runtime Objective-C in modo che trovi i protocolli sulle superclassi?
[myObject conformsToProtocol:@protocol(MyProtocol)];
Se sono sulla strada giusta con ricorsivamente in risalita la gerarchia di classi fammelo sapere.
Hai ragione. Era tardi e nessun suggerimento sul completamento del codice è stato fatto da Xcode. Ho controllato la definizione di Class e ho visto che era "typedef struct objc_class * Class" Non ho controllato il riferimento alla classe NSObject. – LearnCocos2D