27

我一直在尝试寻找在 Swift 中获取子数组的正确方法,但我在这里遗漏了一些东西。此代码不起作用,因为rowArray.append(row)会引发错误。

无法将类型“ArraySlice<Int>”的值转换为指定类型“[Int]”

我不知道如何从主数组中获取 [Int] 或将 ArraySlice<Int> 转换为 [Int]。我猜我错过了一些简单的东西,但似乎无法从文档中找到答案。

var rowArray = [[Int]]()

var rangeStart = 0
let rangeLength = mapWidth

for var index = 0; index < mapHeight; ++index{
    rangeStart = tileIDs.count - ((index + 1) * mapWidth )

    let row : [Int] = tileIDs[rangeStart...rangeStart+rangeLength]
    rowArray.append(row)
}
rowArray.append(row)
4

1 回答 1

69

转换ArraySlice<Int>为:[Int]_Array()

let row : [Int] = Array(tileIDs[rangeStart...rangeStart+rangeLength])
于 2015-10-11T00:05:27.503 回答