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:
- Böyle büyük mükafat (ve derleyici?) @uygulanmasını engellemeyi ilgili özel kategorideki tüm yöntemleri tanımlarsanız kontrol edin
- @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
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.
Java özel durum sınıfı tanımlamak için...
Ön işlemci makroları yokluğunda, bir ş...
Nasıl özel yöntemleri, alanları veya i...
Nasıl raylar özel bir yapılandırma değ...
En iyi Objective-C iOS için 2.0 e-post...