如何在Swift中初始化通用可变数组?

时间:2014-08-26 14:46:33

标签: ios generics swift nsmutablearray

我试过了:

var ss: [S] = NSMutableArray<S>(capacity: 0)

编译器说:无法专门化非泛型类型'NSMutableArray '

为什么?

1 个答案:

答案 0 :(得分:19)

NSArrayNSMutableArray是Objective C类型,不支持泛型。您可以实例化为swift的本机数组类型:

var settings = [Setting]()

也可以写成

var settings = Array<Setting>()

感谢类型推断,您不必指定类型,但如果您愿意,这是完整版本:

var settings: [Setting] = [Setting]()
var settings: Array<Setting> = Array<Setting>()

请注意[Setting]Array<Setting>是可以互换的,这意味着它们定义了相同的对象类型,因此您可以使用您想要的更多。