Eu tenho um objeto (um UIViewController) que pode ou não estar em conformidade com um protocolo que defini.
Sei que posso determinar se o objeto está em conformidade com o protocolo e, em seguida, chamar o método com segurança:
if([self.myViewController conformsToProtocol:@protocol(MyProtocol)]) {
[self.myViewController protocolMethod]; // <-- warning here
}
No entanto, o XCode mostra um aviso:
warning 'UIViewController' may not respond to '-protocolMethod'
Qual é a maneira certa de evitar esse aviso? Não consigo lançar self.myViewController
como uma MyProtocol
classe.
id<MyProtocol> p = (id<MyProtocol>)self.myViewController;
resposta acima - esta resposta e @andy estão corretas, mas a dele é mais correta.