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

Ján*_*nos 11 generics nsmutablearray ios swift

我试过这个:

var ss: [S] = NSMutableArray<S>(capacity: 0)
Run Code Online (Sandbox Code Playgroud)

编译器说:不能专门化非泛型类型'NSMutableArray '

为什么?

Ant*_*nio 19

NSArray并且NSMutableArray是Objective C类型,不支持泛型.您可以实例化为swift的本机数组类型:

var settings = [Setting]()
Run Code Online (Sandbox Code Playgroud)

也可以写成

var settings = Array<Setting>()
Run Code Online (Sandbox Code Playgroud)

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

var settings: [Setting] = [Setting]()
var settings: Array<Setting> = Array<Setting>()
Run Code Online (Sandbox Code Playgroud)

请注意,[Setting]Array<Setting>可以互换,这意味着它们定义相同的对象类型,所以你可以使用任何一个你想了解更多.

  • 我能够使用`+ =`数组泛型运算符添加序列 (2认同)