我有一个对象(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都是正确的,但他的答案更正确。