gpt4 book ai didi

ios - 从空 Swift 数组中获取对象类型

转载 作者:IT王子 更新时间:2023-10-29 05:23:46 25 4
gpt4 key购买 nike

有没有办法从空数组中获取数组元素的实例? (我需要 dynamic 属性,因为我在 NSObject 上使用了一些 KVC 方法)

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 中表示。我尝试编写扩展数组

extension Array {
func instanceObject<T: BaseClass>() -> T? {
return T()
}
}

但是当我使用它时,它有时会抛出错误 fatal error: NSArray element failed to match the Swift Array Element type

最佳答案

Swift 3:获取空数组的元素类型:

let cars = [Car]()                    // []
let arrayType = type(of: cars) // Array<Car>.Type
let carType = arrayType.Element.self // Car.Type
String(describing: carType) // "Car"

关于ios - 从空 Swift 数组中获取对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28647858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com