SORU
5 EKİM 2008, Pazar


En iyi şekilde Objective-C sınıfı için özel yöntemler tanımlamak için

Sadece Objective-C ve Java konusunda tecrübeniz var, yazmaya nasıl merak Objective-C programları anlaşma özel yöntemler ile programlama başladı.

Birkaç kuralları ve alışkanlıkları olabilir anlıyorum ve insanlar Objective-C özel yöntemleri ile ilgili kullanım iyi teknikler toplayıcı olarak bu soruyu düşünün

Lütfen gönderirken yaklaşımınız için bir argüman vardır. - Neden iyi? Hangi sakıncaları biliyorsun ve nasıl onlarla başa çıkmak zorunda mı?

Benim bulgular şimdiye kadar.

Mümkün categories [ör: Sınıfım (Özel)] Sınıfım tanımlanan kullanın.m grup özel yöntemler için dosya.

Bu yaklaşım, 2 sorunları var:

  1. Böyle büyük mükafat (ve derleyici?) @uygulanmasını engellemeyi ilgili özel kategorideki tüm yöntemleri tanımlarsanız kontrol edin
  2. @Arabirimi özel kategori ilan başlayın koymak Sınıfım var.gibi bir mesaj ile şikayet Güncellemelerinden m dosya, "kendi iletisine yanıt."". privateFoo yoksa

İlk sayı empty category ile çalıştı olabilir [örneğin Sınıfım ()].

CEVAP
16 Mart 2009, PAZARTESİ


Yok, diğerleri var zaten dedi, böyle bir şey olarak bir özel yöntemde Amaç-C. Ancak, başlangıç olarak Objective-C 2.0 (anlam Mac OS X Leopard, iPhone OS 2.0 ve üzeri) oluşturabilirsiniz kategorisi ile boş bir isim (yani @interface MyClass ()) denirSınıf Uzantısı. Sınıfın uzantısı hakkında benzersiz yöntem uygulamalarını aynı genel yöntemleri @implementation MyClass gitmek gerekir. Ben böyle derslerimi yapısı:

.h dosyası:

@interface MyClass {
    // My Instance Variables
}

- (void)myPublicMethod;

@end

Ve bu .m dosya:

@interface MyClass()

- (void)myPrivateMethod;

@end

@implementation MyClass

- (void)myPublicMethod {
    // Implementation goes here
}

- (void)myPrivateMethod {
    // Implementation goes here
}

@end

Bu yaklaşımın en büyük avantajı, (bazen) herhangi bir kamu/özel ayrımı değil işlevi tarafından yöntem uygulamaları grup olur bence.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • kindlechatmail

    kindlechatma

    25 AĞUSTOS 2010
  • Paul Schroder

    Paul Schrode

    30 Kasım 2007
  • PUSHER

    PUSHER

    11 HAZİRAN 2014