SORU
12 EYLÜL 2010, Pazar


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
12 EYLÜL 2010, Pazar


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BradleyWuzHere

    BradleyWuzHe

    25 NİSAN 2011
  • MaximumPCMag

    MaximumPCMag

    23 Temmuz 2010
  • WestsideMrArO

    WestsideMrAr

    6 EKİM 2010