我一直在索引超出范围错误。我试图循环一个数组并返回值。
override func countNeighbors(grid: [[Character?]], column x: Int, row y: Int) -> Int {
var sum = 0
for k in 1...2{
for l in 1...2 {
sum += getAlive(grid, column: x - 1 + l, row: y - 1 + l)
}
}
return sum - getAlive(grid, column: x, row: y)
}
答案 0 :(得分:0)
你很可能搞乱了列/行。你应该检查你是否没有交换2.似乎异常来自你的getAlive
功能,所以如果你可以发布它,我们可以帮助你更多。
答案 1 :(得分:0)
'索引超出范围意味着数组下标超出了数组的实际大小。例如,如果您的数组有2个元素,它们将表示为: ' arrayVariable [0]'和' arrayVariable [1]'
常见的数组错误是忘记数组是基于0的,并尝试使用从1开始的下标来访问值。在此示例中,这将导致尝试访问' arrayVariable [2]& #39;,这将超过数组的末尾,导致'索引超出范围'消息。
检查您的值,确保您不会越过数组的末尾。