Ich habe ein Objekt (einen UIViewController), das möglicherweise einem von mir definierten Protokoll entspricht oder nicht.
Ich weiß, dass ich feststellen kann, ob das Objekt dem Protokoll entspricht, und dann die Methode sicher aufrufen kann:
if([self.myViewController conformsToProtocol:@protocol(MyProtocol)]) {
[self.myViewController protocolMethod]; // <-- warning here
}
XCode zeigt jedoch eine Warnung an:
warning 'UIViewController' may not respond to '-protocolMethod'
Was ist der richtige Weg, um diese Warnung zu verhindern? Ich kann nicht self.myViewController
als MyProtocol
Klasse wirken.
id<MyProtocol> p = (id<MyProtocol>)self.myViewController;
Diese Antwort und @andys ist beide richtig, aber sein ist mehr richtig.