175 votes

Objective-C Runtime : meilleur moyen de vérifier si la classe est conforme au protocole ?

J'ai une Classe (mais pas exemple) et ont besoin de savoir si elle est conforme à un certain protocole. Toutefois, la Catégorie peut être sous-classé plusieurs fois et class_conformsToProtocol() ignore les protocoles déclaré sur les super-classes.

Je pouvais class_getSuperclass() et, récursivement, vérifiez toutes les classes de la hiérarchie vers le haut jusqu'à ce que la super-classe est nulle. Cependant je me demande si cela pourrait être inefficace pour l'profondément imbriqués les hiérarchies de classe, et peut-être il ya une meilleure façon de le faire?

En d'autres termes, quelle est la NSObject méthode conformsToProtocol meilleure mise en œuvre de l'aide Objective-C runtime méthodes afin qu'il retrouve les protocoles sur les super-classes?

 [myObject conformsToProtocol:@protocol(MyProtocol)];

Si je suis sur la bonne voie avec récursivement en remontant la hiérarchie de classe laissez-moi savoir.

312voto

Wevah Points 17636

Selon les docs,

devrait fonctionner.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X