Tanımladığım bir protokole uyan veya uymayan bir nesnem (bir UIViewController) var.
Nesnenin protokole uygun olup olmadığını belirleyebileceğimi biliyorum, ardından yöntemi güvenle çağırın:
if([self.myViewController conformsToProtocol:@protocol(MyProtocol)]) {
[self.myViewController protocolMethod]; // <-- warning here
}
Ancak, XCode bir uyarı gösterir:
warning 'UIViewController' may not respond to '-protocolMethod'
Bu uyarıyı önlemenin doğru yolu nedir? Sınıf self.myViewController
olarak rol alamıyorum MyProtocol
.
id<MyProtocol> p = (id<MyProtocol>)self.myViewController;
Bu cevap ve @andys her ikisi de doğru, ancak onunki daha doğrudur.