Mam obiekt (UIViewController), który może, ale nie musi, być zgodny z protokołem, który zdefiniowałem.
Wiem, że potrafię określić, czy obiekt jest zgodny z protokołem, a następnie bezpiecznie wywołaj metodę:
if([self.myViewController conformsToProtocol:@protocol(MyProtocol)]) {
[self.myViewController protocolMethod]; // <-- warning here
}
Jednak XCode wyświetla ostrzeżenie:
warning 'UIViewController' may not respond to '-protocolMethod'
Jaki jest właściwy sposób uniknięcia tego ostrzeżenia? Wydaje się, że nie mogę obsadzić self.myViewController
w MyProtocol
klasie.
id<MyProtocol> p = (id<MyProtocol>)self.myViewController;
ta odpowiedź i @andys są poprawne, ale jego jest bardziej poprawne.