У мене є об'єкт (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 є правильними, але його більш правильним.