我正在尝试在SpriteKit中开发俄罗斯方块。这是我的代码:
class Array2D<T> {
let column: Int
let row: Int
// #2
var array: Array<T?>
init(column: Int, row: Int) {
self.column = column
self.row = row
// #3
array = Array<T?>(count:row * column, repeatedValue: nil)
}
// #4
subscript(columns: Int, rows: Int) -> T? {
get {
return array[(rows * column) + columns]
}
set(newValue) {
array[(rows * column) + columns] = newValue
}
}
}
我的错误出现在这一行:
array = Array<T?>(count:row * column, repeatedValue: nil)
这是错误:
调用中的参数标签不正确(具有"计数:重复值:",预期为"不安全未初始化容量:初始化使用:"(
将"count:row * column, repeatedValue"替换为"unsafeUninitializedCapacity:row * column, initializingWith">
有人知道我如何解决这个问题吗?
您要查找的数组初始值设定项是init(repeating:count:)
。
取代:
array = Array<T?>(count:row * column, repeatedValue: nil)
跟:
array = Array<T?>(repeating: nil, count:row * column)