Swift中的动态或通用类型数组

时间:2018-05-15 04:37:28

标签: arrays swift generics dynamic

我被卡在Array类型之间。我想要做的是在输入值时检测Array类型运行时。

我有一个定义UIPickerView的自定义类,我希望根据有时值为datasourceString或{{1}的要求传递Int }。所以当然,我不能像下面那样定义因为类型转换会出问题。

Double

所以我想要一个解决方案,例如当我传递var arrFirstComponent = [Any]() 值时,Int类型变为Array,当我通过Int时,它变为String类型数组或任何东西。

任何人都可以帮助我吗?我真的不知道如何实现它。

P.S。我已经看到许多答案继承了协议,但我觉得有价值。

1 个答案:

答案 0 :(得分:4)

您可以尝试这样的事情:

class PickerView<T> {
    var arrFirstComponent = [T]()
    // Your picker view code
}

let intPickerView = PickerView<Int>()
intPickerView.arrFirstComponent = [1, 2, 4]

let stringPickerView = PickerView<String>()
stringPickerView.arrFirstComponent = ["First", "Second", "Third"]