2016-07-08 186 views
0

爲什麼這不起作用?Swift數組索引超出範圍

var lottoTaulukko = [Int]() 
var finalLottoTaulukko = [[Int]]() 

var laskuri1 = 0 
var laskuri2 = 0 

while laskuri2 < Int(riviLaskuri) { 

    while laskuri1 < Int(lottoMuoto) { 
     showRowsLabel.stringValue += "\(lottoTaulukko[laskuri1])" 
     finalLottoTaulukko[laskuri2][laskuri1] = lottoTaulukko[laskuri1] // ERROR IS HERE IN THIS LINE! fatal error: Index out of range 

showRowsLabel.stringValue += " " 
     laskuri1 += 1 
    } 

    laskuri1 = 1 
    showRowsLabel.stringValue += "\n" 
    if laskuri2==10 {showRowsLabel.stringValue += "\n"} 
    lottoTaulukko.shuffle() 
    laskuri2 += 1 
} 
+1

[錯誤:「數組索引超出範圍」的多維數組]的可能的複製(http://stackoverflow.com/questions/32650268/error- array-index-out-of-range-in-multidimensional-array) – Hamish

+0

您試圖通過索引訪問數組的元素,但是您傳遞的索引超出了數組的範圍。看看你的代碼,我認爲你正試圖從其範圍索引的finalLottoTaulukko。你初始化了這個數組嗎?它的大小是多少? – itskoBits

+1

當你嘗試訪問它們的內容時,你的數組似乎都是空的。 – Losiowaty

回答

0

指定數組的大小也:

let size = ARRAY.count 

並檢查了它是否適合你!

0

嘗試檢查,如果你存在索引:

while laskuri1 < Int(lottoMuoto) { 
    if let lt = lottoTaulukko[laskuri1]?{ 
     showRowsLabel.stringValue += "\(lottoTaulukko[laskuri1])" 
     if finalLottoTaulukko[laskuri2]? != nil && finalLottoTaulukko[laskuri2][laskuri1]? != nil{ 
      finalLottoTaulukko[laskuri2][laskuri1] = lottoTaulukko[laskuri1] 
     } 
    } 

showRowsLabel.stringValue += " " 
     laskuri1 += 1 
}