错误:multidimensional array中的“数组索引超出范围”

我已经宣布我的数组像

var tile = [[Int]]() 

之后,我已经初始化它的价值

 for (var index = 0; index < 4; index++) { for (var sindex = 0; sindex < 4; sindex++) { self.tile[index][sindex] = 0 // error here println("\(index) \(sindex)") } } 

在运行时它给出一个错误“数组索引超出范围”

正如评论员@C_X&@MartinR所说,你的数组是空的。 这是如何初始化它,如你所愿…

 var tile = [[Int]](count:4, repeatedValue: [Int](count: 4, repeatedValue: 0)) for index in 0 ..< 4 { for sindex in 0 ..< 4 { tile[index][sindex] = 0 // no error here now... print("\(index) \(sindex)") } } 

…当然, for循环现在是多余的,如果你只是想要零!

根据评论,你知道你正在索引值为空的数组。 如果你想初始化数组,你应该尝试这样的事情:

 for (var index = 0; index < 4; index++) { tile.append([]) for (var sindex = 0; sindex < 4; sindex++) { tile[index].append(sindex) print("\(index) \(sindex)") } }