내가 정의한 프로토콜을 따르거나 따르지 않을 수있는 객체 (UIViewController)가 있습니다.
객체가 프로토콜을 준수하는지 확인한 다음 안전하게 메서드를 호출 할 수 있다는 것을 알고 있습니다.
if([self.myViewController conformsToProtocol:@protocol(MyProtocol)]) {
[self.myViewController protocolMethod]; // <-- warning here
}
그러나 XCode는 경고를 표시합니다.
warning 'UIViewController' may not respond to '-protocolMethod'
이 경고를 방지하는 올바른 방법은 무엇입니까? 내가 캐스트 수가 없어 self.myViewController
A와 MyProtocol
클래스입니다.
id<MyProtocol> p = (id<MyProtocol>)self.myViewController;
이 답변과 @andys는 모두 정확하지만 더 정확합니다.