Saya memiliki objek (UIViewController) yang mungkin atau mungkin tidak sesuai dengan protokol yang saya tetapkan.
Saya tahu saya dapat menentukan apakah objek tersebut sesuai dengan protokol, kemudian dengan aman memanggil metode tersebut:
if([self.myViewController conformsToProtocol:@protocol(MyProtocol)]) {
[self.myViewController protocolMethod]; // <-- warning here
}
Namun, XCode menunjukkan peringatan:
warning 'UIViewController' may not respond to '-protocolMethod'
Apa cara yang benar untuk mencegah peringatan ini? Sepertinya saya tidak bisa berperan self.myViewController
sebagai MyProtocol
kelas.
id<MyProtocol> p = (id<MyProtocol>)self.myViewController;
Jawaban ini dan @andys keduanya benar, tetapi jawabannya lebih benar.