2016-07-25 89 views
-5

我不斷收到索引超出範圍錯誤。我試圖循環訪問數組並返回值。致命錯誤:索引超出範圍(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) 
} 
+0

什麼是作爲網格變量傳遞? – Scriptable

+0

你應該添加一些精確到你的帖子,如你正在傳遞函數的參數。發生異常的行。或者更多的代碼。 – Aeradriel

回答

0

你很可能已經搞亂了列/行。你應該檢查你是否沒有交換2.看起來這個例外來自你的getAlive函數,所以如果你可以發佈它,我們可能會比這更幫你。

0

'超出範圍的索引意味着數組下標超出了數組的實際大小。例如,如果數組有2個元素,則它們將表示爲: 'arrayVariable [0]'和'arrayVariable [1]'

常見的數組錯誤是忘記該數組是基於0的,並且嘗試訪問下標以1開始的值。在此示例中,這將導致嘗試訪問'arrayVariable [2]',該值將超過數組的末尾,導致'索引超出範圍'消息。

檢查您的值以確保您不會超出數組的末尾。

相關問題