我正在SpriteKit中开发俄罗斯方块,并得到一个奇怪的错误



我正在尝试在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)

相关内容

最新更新