@Arabirim tanımı arasındaki fark .h ve .m dosya | Netgez.com
SORU
19 EKİM 2010, Salı


@Arabirim tanımı arasındaki fark .h ve .m dosya

Normalde kullanıyoruz

@interface interface_name : parent_class <delegates>
{
......
}
@end 

yöntemi .h dosyası .biz m değişkenlerin özellikleri ilan sentezi dosyası .h dosyası.

Ama bazı kodlar, @interface.....@end yöntem bu tutulur .m dosyası da. Bu ne anlama geliyor? Aralarındaki fark nedir?

Ayrıca, tanımlı arayüz dosyası için alıcı ve ayarlayıcıları hakkında birkaç söz ver .m dosya...

Şimdiden teşekkürler

CEVAP
19 EKİM 2010, Salı


Ortak koymak özel yöntemler içeren bir kategori tanımlayan @interface ek

KiÅŸi.h:

@interface Person
{
    NSString *_name;
}

@property(readwrite, copy) NSString *name;
-(NSString*)makeSmallTalkWith:(Person*)person;
@end

KiÅŸi.m:

@interface Person () //Not specifying a name for the category makes compiler checks that these methods are implemented.

-(void)startThinkOfWhatToHaveForDinner;
@end


@implementation Person

@synthesize name = _name;

-(NSString*)makeSmallTalkWith:(Person*)person
{
    [self startThinkOfWhatToHaveForDinner];
    return @"How's your day?";
}


-(void)startThinkOfWhatToHaveForDinner
{

}

@end

'Özel kategorisi (isimsiz bir kategori için uygun bir isim değil' özel kategori',' sınıf uzantısı').'m yöntemleri tanımlanan uyarı derleyici engeller. Ancak, @interface çünkü .m dosyası içinde bugün ivan'ın tanımlayabilirsiniz. bir kategoridir.

Update 6 '12: Objective-C bu cevap yazıldığından bu yana gelişti: . Ağu

  • ivars sınıfın uzantısı (ve her zaman cevap yanlış olabilir) bildirilebilir
  • @synthesize gerekli deÄŸildir
  • ivars @implementation üst: parantez içinde bildirilebilir

    @uygulanması { kimliği _ivarİnİmplmentation; } //yöntem @son

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013
  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007
  • TheFlashCentre

    TheFlashCent

    22 Mayıs 2008