错误: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)") } }