objective-c respondsToSelector kullanma zamanı
- (void)someMethod
{
if ( [delegate respondsToSelector:@selector(operationShouldProceed)] )
{
if ( [delegate operationShouldProceed] )
{
// do something appropriate
}
}
}
documentation diyor ki:
Önlem gerekli sadece resmi bir protokol ya da gayri resmi bir protokol yöntemleri isteğe bağlı yöntemler
Bu ne anlama geliyor? Eğer resmi bir protokol kullanırsam sadece [delegate myMethod]
kullanabilirim?
CEVAP
Hemen hemen için ne yapmak gerekir? sadece bunu kullanın: eğer bir nesne yöntemi uygular olmadığını görmek için kontrol edin.Genelliklebu isteğe bağlı bir yöntem ya da gayri resmi bir protokol varsa yapılır.
Sadece tek bir temsilci nesnesi ile iletişim kurmak gerekir, bu kodu yazdığımda respondsToSelector
kullandım.
if ([self.delegate respondsToSelector:@selector(engineDidStartRunning:)]) {
[self.delegate engineDidStartRunning:self];
}
Bazen döndürülen nesnenin sınıfın ne olduğundan emin değilsin nereye döner ve id
genel NSObject
herhangi bir yöntem üzerinde respondsToSelector
kullanmak isteyebilirsiniz.
Kullanma zamanı Objective-C 'öz...
Yapı kullanma zamanı mı?...
MongoDB ve CouchDB tam tersi fazla kul...
Kullanma zamanı .Kullanmaya ilk ne zam...
Lambda kullanmak, Proc kullanma zamanı...