Statik yapıcı Objective-C eşdeğer?
Ben yeni Objective C ve I fırsatım olmadı bulmak varsa eşdeğer bir statik oluşturucu dili, statik bir yöntem içinde bir sınıf olacak otomatik olarak aramadan önce ilk örneği bu sınıf örneği. Ya Başlatma kendimi kodu aramam gerekiyor mu?
Teşekkürler
CEVAP
initialize
yöntemi denirotomatik olarakbir sınıf, her sınıf önce ilk defa kullanılan yöntemler kullanılır veya örnekleri oluşturulur. Asla initialize
Kendin aramalısın.
Ben de bu yolda seni ısırabilir öğrendiğim bir şey aktarmak istedik: initialize
alt sınıflar tarafından miras alınır ve ayrıca kendi initialize
sağlamayan her alt sınıflar denir. Bu initialize
singleton başlatma saf bir şekilde uygularsanız, özellikle sorunlu olabilir. Peki çözüm gibi sınıf değişkeni türünü kontrol etmek için:
(void) initialize {
if (self == [MyParentClass class]) {
// Once-only initializion
}
// Initialization for this class and any subclasses
}
NSObject gökyüzünden inen tüm sınıflar Class
nesneyi döndürmek class
-class
yöntemler de var. Her sınıf için bir Sınıf nesnesi olduğundan, ==
operatörü ile eşitliği test etmek istiyoruz. Bu sadece bir kez daha, bir kez karşı verilen bir sınıf aşağıda bir hiyerarşi henüz mevcut olmayabilir) ve ayrı her sınıf için ne yapılması gerektiği süzmek için kullanabilirsiniz.
Teğetsel bir konu hakkında, eğer sığınak değil aşağıdaki ilgili yöntem, zaten: öğrenmeye değer
- - isMemberOfClass:(Class)aClass (
aClass
kendisi için doğru) - - isKindOfClass:(Class)aClass (
aClass
ve çocuklar için de geçerlidir) - 19* *(yukarıda, ama bir sınıf yöntemi ile aynı)
Düzenleme:Bu mesaja bakın@bbumdaha initialize
hakkında açıklayan: http://www.friday.com/bbum/2009/09/06/iniailize-can-be-executed-multiple-times-load-not-so-much/
Ayrıca, Mike Ash initialize
load
yöntemleri hakkında yeterince detaylı bir Cuma soru cevap yazdı:
https://www.mikeash.com/pyblog/friday-qa-2009-05-22-objective-c-class-loading-and-initialization.html
C# statik yapıcı iş parçacığı güvenli?...
Hız eşdeğer statik ve statik olmayan y...
'Java eşdeğer'In Thread ler ...
Objective-C kategorileri statik kitapl...
Neden't numaralama'in erişim...