有没有办法从空数组中获取Array元素的实例? (我需要 dynamic
属性因为我使用了一些KVC方法 NSObject
)
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>()
我需要的是从这个空数组中获取空Car对象实例的vay,例如:
var carFromArray = cars.instanceObject() // will return empty Car object
我知道我可以使用:
var object = Array<Car>.Element()
但这对我不起作用,因为我从函数参数获取数组,我不知道它的元素类。
我已经尝试编写我自己的类型,它会这样做,它可以工作,但我不能把它标记为 dynamic
因为它无法在Objective C中表示。我试着编写Array的扩展
extension Array {
func instanceObject<T: BaseClass>() -> T? {
return T()
}
}
但是当我使用它时,它有时会抛出错误 fatal error: NSArray element failed to match the Swift Array Element type