J'ai un objet (un UIViewController) qui peut ou non être conforme à un protocole que j'ai défini.
Je sais que je peux déterminer si l'objet est conforme au protocole, puis appeler la méthode en toute sécurité:
if([self.myViewController conformsToProtocol:@protocol(MyProtocol)]) {
[self.myViewController protocolMethod]; // <-- warning here
}
Cependant, XCode affiche un avertissement:
warning 'UIViewController' may not respond to '-protocolMethod'
Quelle est la bonne façon d'éviter cet avertissement? Je n'arrive pas à jouer en self.myViewController
tant que MyProtocol
classe.
id<MyProtocol> p = (id<MyProtocol>)self.myViewController;
Cette réponse et @andys sont tous les deux corrects, mais le sien est plus correct.