2016-04-12 13 views
-1

Soruyorum çünkü bu işlevi ayrı olarak bir sınıfa uygulamak istiyorum. Elbette sadece NSObject'ten miras alabilirim, ama gerçekten tek bir yöntem istediğimden, tüm bu şeyleri nesnelerime sokmaktan nefret ediyorum. Komut + itibarenNSObject.setValue (value: AnyObject ?, forKey anahtar: String) nasıl uygulanır?

+0

Bu yeni nesneler oluştururken NSObject' 'dan alt sınıfı için genelde iyi bir fikirdir. – Slayter

+0

Bu gerçekten amaçlarına bağlı ve benim amaçlarım için, diğer insanların onları alt sınıflara ayırabilmeleri ve onlarla ne yapmak istediklerini yapabilmeleri için, asgari yöntemlere sahip belirli bir sınıf yaratmak istiyorum. – Evert

cevap

0

yöntemi tıklandığında: Bir değer Verilen

ve bir özelliği tanımlayan bir anahtar, öznitelik değerini ayarlayın. Bir nesne ve bire-bir ilişkiyi tanımlayan bir anahtar verildiğinde, nesnenin alıcıyla ilişkilendirilmesi, daha önce ilgili nesnenin biriyle ilişkilendirilmesi. Bir toplama nesnesi ve çoktan bir ilişkiyi tanımlayan bir anahtar verildiğinde, koleksiyonda yer alan nesneleri alıcıyla ilişkilendirerek, önceden varsa ilgili nesneleri ilişkilendirerek ilişkilendirin.

bu yöntemin varsayılan uygulaması şunları yapar:

  1. Aramalar adı deseni -Set eşleşen bir erişimci yöntemi için alıcısının sınıf :. Böyle bir yöntem bulunursa, parametresinin tipi kontrol edilir. Parametre türü nesne işaretçisi türü değilse, ancak değer nil -setNilValueForKey ise: çağrılır. -setNilValueForKey varsayılan uygulaması: NSInvalidArgumentException yükseltir, ancak uygulamanızda geçersiz kılabilirsiniz. Aksi takdirde, eğer metodun parametresi obje işaretçisiyse, metot argümanı ile basitçe çağrılır. Metodun parametresinin türü, başka bir tür ise, -valueForKey tarafından yapılan NSNumber/NSValue dönüşümünün tersi : yöntem çağrılmadan önce gerçekleştirilir.

  2. Aksi takdirde (bir erişimci metodu bulunur), alıcının sınıfının + accessInstanceVariablesDirectly yöntemi adı uyan model _ _is, veya bir örneği değişken için alıcı sınıfı, VAR geri arama yaparsa, bu sırayla. gibi bir örnek değişkeni bulunur ve türü bir nesne işaretçisi olan türünde ise değer korunur ve sonuç, örnek değişkeninin eski değeri ilk olarak yayınlandıktan sonra değişken örneğinde ayarlanır. örneği değişkeninin tip değeri 1.

      adımında tarif NSNumber veya NSValue dönüştürme aynı tür sonra ayarlanır başka bir tip ise
    1. Aksi takdirde (bir erişimci metodu veya örnek değişkeni bulunur), -setValue: forUndefinedKey :. -setValue: forUndefinedKey için varsayılan uygulama : bir NSUndefinedKeyException yükseltir, ancak uygulamanızda geçersiz kılabilirsiniz. Tüm bu diğer "önemsiz" gerçekten yararlı olabilir çünkü
+0

Hepsi iyi ve güzel, ama tüm bunları hızlıca nasıl yapacağım konusunda hiçbir fikrim yok. Bu şeyler mümkün mü? Bir nesnenin yöntemlerini hızlı bir şekilde yansıtamayacağınızı sanıyordum ... – Evert

+0

Eminim küçük bir araştırmayla mümkün. – Slayter

+1

Aslında, hiçbirini Pure Swift'de yapamazsın. Sizinle ObjC çalışma zamanınız varsa, evet, aynı kesin koddur. –

İlgili konular