nesne tipini alın?boş diziden Dizi elemanının örneğini almak için bir yolu var mı boş Swift Array
var carFromArray = cars.instanceObject() // will return empty Car object
:
import Foundation
class BaseClass: NSObject {
func myFunction() {
doWork()
}
}
class Car: BaseClass {
dynamic var id: Int = 0
}
class Bus: BaseClass {
dynamic var seats: Int = 0
}
var cars = Array<Car>()
Ne gerek böyle mesela bu boş diziden boş Araba nesnenin örneğini almak için bir vay, (Ben NSObject
bazı KVC yöntemleri kullanın çünkü dynamic
özelliklerini gerekir)
Ben kullanabileceğinizi biliyor:
var object = Array<Car>.Element()
ama işlevi parametresinden dizisini almak beri bu benim için çalışmıyor ve bunu eleman sınıf olduğunu bilmiyorum.
Bunu yapacak kendi türünü yazmaya çalıştık ve bu çalışır, ancak Amaç C. temsil edilemiyor çünkü Array uzatılmasını yazmaya çalıştı sonra dynamic
olarak işaretlemek edemez
extension Array {
func instanceObject<T: BaseClass>() -> T? {
return T()
}
}
fakat kullandığımda, bazen hata veriyor fatal error: NSArray element failed to match the Swift Array Element type
ben bunu yapabilirsiniz sanmıyorum. Dizi herhangi öğeler içeriyor Açıkçası eğer dizi veya bir öğe geçebilir ve biz onun dinamik türünü öğrenebilirsiniz. Eğer bir işleve boş dizi geçirirseniz Ama, bu fonksiyon hiç öğesi _had_ eğer bir dizi olması _would_ şey dizinin ne tür öğrenemez. – matt
Ben size içgözlem bu derecede ihtiyaç inanıyoruz _why_ düşünmenizi rica ediyorum sanırım. Ne _really_ yapmaya çalışıyorsun? – matt