Bir geliştiricinin + başlatmayı veya + yüklemeyi + geçersiz kılmasına neden olan koşulları anlamakla ilgileniyorum. Belgeler, bu yöntemlerin sizin için Objective-C çalışma zamanı tarafından çağrıldığını açıkça ortaya koymaktadır, ancak bu yöntemlerin belgelendirilmesinden gerçekten anlaşılan tek şey budur. :-)
Merakım Apple'ın örnek koduna (MVCNetworking) bakmaktan geliyor. Model sınıflarının bir +(void) applicationStartup
yöntemi vardır. Dosya sistemi üzerinde bir miktar temizlik yapar, NSDefaults'u okur, vs ... ve NSObject'in sınıf metotlarını seçmeye çalıştıktan sonra, bu temizlik işinin + yüklemeye koyulması uygun görünebilir.
MVCNetworking projesini değiştirdim, App Delegate'deki çağrıyı + applicationStartup'a kaldırdım ve temizlik bitlerini + yüklemeye koydum ... bilgisayarım alev almadı, ancak bu doğru olduğu anlamına gelmez! Herhangi bir incelik, sorun ve özel bir kurulum yöntemi hakkında, + yükle veya + başlatmaya karşı çağırmanız gereken şeyler hakkında bir anlayış kazanmayı umuyorum.
+ Yük için dokümantasyon diyor ki:
Yükleme mesajı, hem dinamik olarak yüklenen hem de statik olarak bağlanan sınıflara ve kategorilere gönderilir, ancak yalnızca yeni yüklenen sınıf veya kategori yanıt verebilecek bir yöntem uygularsa.
Bu cümle kludgeydir ve tüm kelimelerin tam anlamını bilmiyorsanız ayrıştırılması zordur. Yardım!
"Hem dinamik olarak yüklü hem de statik olarak bağlı" ile ne kastedilmektedir? Bir şey dinamik olarak yüklenebilir VE statik olarak bağlanabilir mi, yoksa birbirini dışlar mı?
"... yeni yüklenen sınıf veya kategori," Hangi yöntem? Nasıl yanıtlanır?
İlklendirmeye gelince, dokümantasyon şunları söylüyor:
initialize, sınıf başına yalnızca bir kez çağrılır. Sınıf ve sınıf kategorileri için bağımsız başlatma gerçekleştirmek istiyorsanız, yükleme yöntemlerini uygulamanız gerekir.
Bunu, "sınıfı kurmaya çalışıyorsanız ... başlatma kullanma" anlamına geliyor. Tamam iyi. O halde başlatmayı ne zaman veya neden geçersiz kılmalıyım?
+load
Kategoriler için ayrı olarak gönderildiğini unutmayın ; yani, bir sınıftaki her kategori kendi+load
yöntemini içerebilir .