SORU
14 HAZİRAN 2009, Pazar


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
14 HAZİRAN 2009, Pazar


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


Düzenleme:Bu mesaja bakın@bbumdaha initializehakkı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

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 0TACTICAL0HIPPY0

    0TACTICAL0HI

    30 EYLÜL 2012
  • Call Me Howard

    Call Me Howa

    18 AĞUSTOS 2012
  • Fullscreen

    Fullscreen

    23 Mart 2006