SORU
5 HAZİRAN 2014, PERŞEMBE


Swift yerel temel sınıf veya NSObject

Dışarı Swift ile isa swizzling bazı test ettim, ve sadece NSObject süper sınıf (doğrudan veya daha fazla), veya kullanarak olduğunda çalışır bulundu '@objc' dekorasyon. Aksi takdirde statik - taban-Merkez stili, C gibi takip edecek .

Kakao/NSObject bir temel sınıf olmadan Hızlı bir sınıf tanımlamak için normal mi? Eğer öyle ise bu Objective-C, yöntem durdurma gibi dinamizmini çok yukarıda ve çalıştırma içgözlem demek endişeliyim.

Çalışma zamanı dinamik davranış özellikleri özellik gözlemciler gibi, Temel Veri, Aspect Oriented Programming, Higher Order Messaging, analitik ve günlük çerçeveler çok yer alıyor.

Yöntem çağırma kullanarak Objective-C tarzı 20 makine kodu bu yüzden bazı durumlarda bir yöntem çağrısı için işlenen, etrafında ekler (çok sıkı küçük gövdeli yöntemleri çağırır) C tipi statik ve taban daha iyi gönderme gerçekleştirin.

Ama genel 95-5 kuralı verilirPerformans artışı � % kodu %5 ayarlama), duygusu güçlü, dinamik özellikleri ile başlayıp nerede sertleşmesine değil mi gerekli?

CEVAP
5 HAZİRAN 2014, PERŞEMBE


NSObject amacı olan Swift sınıfları:

  • olan Objective-C sınıfları kendilerini
  • kullanım aramalar için objc_msgSend() (En) yöntemleri
  • (en) yöntemi uygulamaları için Objective-C çalışma zamanı meta verileri sağlar

NSObject alt sınıfları değil, Swift sınıfları:

  • Objective-C sınıfları vardır, ama NSObject uyumluluk için yöntemleri sadece bir avuç uygulamak
  • onların yöntemleri için çağrı (varsayılan) objc_msgSend() kullanmayın
  • sağlamaz Objective-C çalışma zamanı yöntem uygulamaları (varsayılan) için meta verileri

Swift sınıflara NSObject sen Objective-C esneklik aynı zamanda Objective-C performans zamanı. NSObject eğer Objective-C ihtiyacın olursa ... performansı kaçınarak esneklik.

Düzenleme:

Xcode 6 beta 6, dinamik özniteliği görünür. Bu bize bir dinamik dağıtım yöntemi kullanması gerektiğini Swift istemek için izin verir, ve bu nedenle ele geçirilmesine destek verecek.

public dynamic func foobar() -> AnyObject {
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Epic Tutorials for iPhone, iPad and iOS

    Epic Tutoria

    18 EYLÜL 2011
  • New Scientist

    New Scientis

    27 Kasım 2006
  • PremiumBeat.com - Royalty Free Music

    PremiumBeat.

    16 Kasım 2008