Tengo un objeto (un UIViewController) que puede o no cumplir con un protocolo que he definido.
Sé que puedo determinar si el objeto se ajusta al protocolo, luego llamar de forma segura al método:
if([self.myViewController conformsToProtocol:@protocol(MyProtocol)]) {
[self.myViewController protocolMethod]; // <-- warning here
}
Sin embargo, XCode muestra una advertencia:
warning 'UIViewController' may not respond to '-protocolMethod'
¿Cuál es la forma correcta de prevenir esta advertencia? Parece que no puedo elegir self.myViewController
como MyProtocol
clase.
id<MyProtocol> p = (id<MyProtocol>)self.myViewController;
esta respuesta y @andys son correctas, pero la suya es más correcta.