如何从Swift 2.0获取subArray

Sky*_*ren 27 arrays sub-array swift2

我一直在尝试搜索在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)
Run Code Online (Sandbox Code Playgroud)

aya*_*aio 67

转换ArraySlice<Int>到[Int]使用Array():

let row : [Int] = Array(tileIDs[rangeStart...rangeStart+rangeLength])
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,这仍然适用于Swift 3 (8认同)