2016-07-08 120 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 
}