SORU
9 NİSAN 2009, PERŞEMBE


Nasıl Objective-C temsilciler / protokoller uzatmak

Eğer AVAudioPlayer gibi bir sınıf genişletmek istiyorum, ayrıca AVAudioPlayerDelegate için başka bir yöntem eklemek için en iyi yolu nedir ?. Bunun için bir kategori yaparım, bunu uzatabilirim? Alırsan ben de eklersek o zaman ben de emin gerçek temsilci alıcı/ayarlayıcı üzerine yapmak zorunda ? Nasıl protokolü uzatmak istiyorsunuz ? Bana aşağıdaki hataları veriyor



@protocol AudioTrackDelegate : AVAudioPlayerDelegate {
    - (void)foo;
}
@end

@interface AudioTrack : AVAudioPlayer {
}
@end

CEVAP
9 NİSAN 2009, PERŞEMBE


Başka bir protokol uygulayan bir protokol oluşturmak için sözdizimi gibi

@protocol NewProtocol <OldProtocol>
- (void)foo;
@end

Eğer bir işaretçi OldProtocol yazılan NewProtocol yöntemi çağırmak istiyorsanız ya respondsToSelector arayın:

if ([object respondsToSelector:@selector(foo)])
    [(id)object foo];

Veya NSObject bir kategori olarak saplama yöntemleri tanımlayın:

@interface NSObject (NewProtocol)
- (void)foo;
@end
@implementation NSObject (NewProtocol)
- (void)foo
{
}
@end

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ehowhome

    ehowhome

    22 NİSAN 2009
  • HereWeStayKings

    HereWeStayKi

    3 NİSAN 2013
  • STITCHLESS TV how to sew your own style tutorials

    STITCHLESS T

    9 HAZİRAN 2011