致命错误:索引超出范围(swift xcode)

时间:2016-07-25 13:19:30

标签: swift xcode

我一直在索引超出范围错误。我试图循环一个数组并返回值。

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)
}

2 个答案:

答案 0 :(得分:0)

你很可能搞乱了列/行。你应该检查你是否没有交换2.似乎异常来自你的getAlive功能,所以如果你可以发布它,我们可以帮助你更多。

答案 1 :(得分:0)

'索引超出范围意味着数组下标超出了数组的实际大小。例如,如果您的数组有2个元素,它们将表示为: ' arrayVariable [0]'和' arrayVariable [1]'

常见的数组错误是忘记数组是基于0的,并尝试使用从1开始的下标来访问值。在此示例中,这将导致尝试访问' arrayVariable [2]& #39;,这将超过数组的末尾,导致'索引超出范围'消息。

检查您的值,确保您不会越过数组的末尾。