Yanıtlar:
Ayrıca statik ileti örnekleri de vardırRespondToSelector: (SEL) selector Bunu şöyle çağırırsınız:
[MyClass instancesRespondToSelector:@selector(someMethod:withParams:)]
veya bunun gibi:
[[myObject class] instancesRespondToSelector:@selector(someMethod:withParams:)]
Buna bağlı olarak bir kurucu veya başka bir kurucu çağırmak isterseniz bu yararlı olabilir (yani, örneğin kendisine sahip olmadan önce).
Kullanın respondsToSelector:. Gönderen belgeler :
respondsToSelector:
Alıcının belirtilen bir iletiye yanıt verebilecek bir yöntemi uygulayıp uygulamadığını veya miras alıp almadığını gösteren bir Boolean değeri döndürür.
- (BOOL)respondsToSelector:(SEL)aSelectorParametreler
aSelector - Bir mesajı tanımlayan bir seçici.
YESAlıcı , aksi takdirde , aSelector'a yanıt verebilecek bir yöntemi uygular veya devralırsa Dönüş DeğeriNO.
if ([foo respondsToSelector: @selector(bar)] {
[foo bar];
}
As Donal diyor Yukarıdaki foo yapılamayacağını belirten kesinlikle çubuğu seçici alma kolu. Bununla birlikte, eğer foo, bar mesajını alacak olan bazı temel nesneye bar ileten bir proxy ise, o zaman responseToSelector: mesaj çubuğa yanıt veren bir nesneye iletilecek olsa bile size HAYIR diyecektir.
ResponsesToSelector ile seçicilerin denetlenmesi normalde yalnızca temsilci yöntemleri içindir. Temsilci yöntemleri için forwardInvocation veya proxy kullanmamalısınız. ResponsesToSelector'ı başka durumlarda kullanmanız gerekirse, programınızı tasarlamak için daha uygun bir yol olmadığından emin olmak isteyebilirsiniz.
- forwardInvocation:) seçicilere yanıt verebilir .