我尝试了这个:
var ss: [S] = NSMutableArray<S>(capacity: 0)
编译器报错: 无法为非泛型类型 'NSMutableArray' 进行特化
为什么会出错呢?
我尝试了这个:
var ss: [S] = NSMutableArray<S>(capacity: 0)
编译器报错: 无法为非泛型类型 'NSMutableArray' 进行特化
为什么会出错呢?
NSArray
和NSMutableArray
是Objective C类型,不支持泛型。您可以实例化为Swift的本地数组类型:
var settings = [Setting]()
这也可以写成
var settings = Array<Setting>()
var settings: [Setting] = [Setting]()
var settings: Array<Setting> = Array<Setting>()
[Setting]
和Array<Setting>
是可以互换的,这意味着它们定义了相同的对象类型,因此您可以使用您更喜欢的任何一种。
NSOrderedSet
的元素添加到settings
吗? - JánosNSOrderedSet
有一个NSArray
类型的array
属性。为了利用 Swift 泛型,您需要循环遍历该数组,将每个元素转换为 Setting 并添加到settings
数组中。 - Antonio+=
数组通用运算符添加序列。 - JánosArray
不能替换NSMutableArray
,因为它是不可变的。 - Benny