我一直在寻找正确的方法来获得Swift的子数组,但是我在这里遗漏了一些东西。此代码不起作用,因为rowArray.append(row)抛出一个错误。
Cannot convert value of type ‘ArraySlice<Int>’ to specified type
‘[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)
转换ArraySlice< Int>使用Array():[Int]
let row : [Int] = Array(tileIDs[rangeStart...rangeStart+rangeLength])