У меня есть объект (UIViewController), который может соответствовать или не соответствовать определенному мною протоколу.
Я знаю, что могу определить, соответствует ли объект протоколу, а затем безопасно вызвать метод:
if([self.myViewController conformsToProtocol:@protocol(MyProtocol)]) {
[self.myViewController protocolMethod]; // <-- warning here
}
Однако XCode показывает предупреждение:
warning 'UIViewController' may not respond to '-protocolMethod'
Как правильно предотвратить это предупреждение? Я не могу бросить self.myViewController
как MyProtocol
класс.
id<MyProtocol> p = (id<MyProtocol>)self.myViewController;
Этот ответ и @andys оба правильно, но его это более правильно.