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?
cevap
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:
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.
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
- 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ü
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
Eminim küçük bir araştırmayla mümkün. – Slayter
Aslında, hiçbirini Pure Swift'de yapamazsın. Sizinle ObjC çalışma zamanınız varsa, evet, aynı kesin koddur. –
- 1. '(NSObject, AnyObject)', 'String' dönüştürülemez
- 2. HashMap (anahtar: String, value: ArrayList) ArrayList yerine bir nesne döndürür?
- 3. Swift. Hata: '[AnyObject?]' Türünün değeri 'AnyObject?' Beklenen argüman türüne dönüştürülemiyor.
- 4. C++ 0x raw string literal nasıl uygulanır?
- 5. Java'nın String # intern() yöntemi nasıl uygulanır?
- 6. Alamofire Parametreleri - NSDictionary [String: AnyObject] için dönüştürülebilir değil
- 7. SetObject yapılamıyor: forKey: in NSMutableDictionary
- 8. Kontrol AnyObject Swift
- 9. Swift: '(NSObject, AnyObject)' 'subscript'
- 10. <NSObject> 'anyObject'
- 11. 'AnyObject ?!' tipinin değişmez ifadesine atanamaz
- 12. Değerler yinelenirken, değer bir sayı olduğunda typeof (value) "string" değerini neden döndürür? Javascript
- 13. setPrimitiveValue: forKey: ve çoktan çoğa ilişkileri
- 14. DAO Scala'da Nasıl Uygulanır?
- 15. Seçenek'den nasıl bilinir [Map [String, Seq [String]]] anahtar içeriyor mu değil mi?
- 16. , [String: AnyObject] öğesinin ilgisiz türden NSMutableDictionary öğesine dökümü her zaman başarısız oluyor Uyarı
- 17. açısal 2 fark $ {value} ve {{value}}
- 18. İfade türü '[AnyObject]?' Dönüştürülemiyor 'NSArray'
- 19. AnyRef'te senkronize yöntem nasıl uygulanır?
- 20. Set.toString() nasıl uygulanır?
- 21. XQUERY - 'value()' işlevindeki sql: variable nasıl kullanılır?
- 22. Bağlamsal tür 'AnyObject' sözlük değişkeni ile kullanılamaz?
- 23. Xcode 8 beta 6 AnyObject Swift 3
- 24. Anahtar = değer dosyası nasıl okunur ve virgülle ayrılmış bir String nasıl bölünür?
- 25. Seri hale getirilebilir nasıl uygulanır?
- 26. IDictionary küçük duyarlılığını nasıl geçersiz kılınır <string, string>
- 27. numpy.cov() işlevi nasıl uygulanır?
- 28. F # C# arabirimi nasıl uygulanır?
- 29. Kalıcı Python `listesi` nasıl uygulanır?
- 30. Dinamik Yabancı Anahtarlar - Nasıl Uygulanır?
Bu yeni nesneler oluştururken NSObject' 'dan alt sınıfı için genelde iyi bir fikirdir. – Slayter
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