55 votes

Vérifier si une méthode de protocole optionnelle a été mise en œuvre

Est-ce que quelqu'un connaît le meilleur moyen de vérifier si une méthode de protocole facultative a été mise en œuvre?

J'ai essayé ceci:

 if ([self.delegate respondsToSelector:@selector(optionalProtocolMethod:)] )
 

où délégué est:

 id<MyProtocol> delegate;
 

Cependant, j'obtiens une erreur en disant que la fonction respondsToSelector: n'est pas trouvée dans le protocole!

101voto

Will Harris Points 17002

respondsToSelector: fait partie du protocole NSObject . Y compris NSObject en MyProtocol devrait résoudre votre problème:

 @protocol MyProtocol <NSObject>

@optional
-(void)optionalProtocolMethod:(id)anObject;

@end
 

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