@ Энди, я не думаю, что тебе нужен '*', так как 'id' уже является указателем. Итак: id <MyProtocol> p = (id <MyProtocol>) self.myViewController; [p protocolMethod]; Или просто: [(id <MyProtocol>) self.myViewController protocolMethod];

я есть объект (UIViewController), который может соответствовать или не соответствовать протоколу, который я определил.

Я знаю, что могу определить, соответствует ли объект протоколу, а затем безопасно вызвать метод:

if([self.myViewController conformsToProtocol:@protocol(MyProtocol)]) {
    [self.myViewController protocolMethod]; // <-- warning here
}

Тем не менее, XCode показывает предупреждение:

warning 'UIViewController' may not respond to '-protocolMethod'

Как правильно предотвратить это предупреждение? Я не могу броситьself.myViewController какMyProtocol класс.

Ответы на вопрос(1)

Ваш ответ на вопрос