我正在关注Swift1的教程,他们使用'enumerate'函数通过数组进行枚举。自从Swift2以来,他们改变了这种方式,并且我不能再为某个“AnyObject”类型的数组工作了。
以下是我遇到问题的代码:
init(filename: String) {
if let dictionary = Dictionary<String, AnyObject>.loadJSONFromBundle(filename) {
if let tilesArray: AnyObject = dictionary["tiles"] {
for(row, rowArray) in enumerate(tilesArray as! [[Int]]) {
let tileRow = NumRows - row - 1
for (column, value) in rowArray.enumerate() {
if value == 1 {
tiles[column, tileRow] = Tile()
}
}
}
}
}
}
我已经通过从
更改它来修复此行for (column, value) in enumerate(rowArray) {
到
for (column, value) in rowArray.enumerate() {
这很好用
我遇到麻烦的是这一行:
for(row, rowArray) in enumerate(tilesArray as! [[Int]]) {
tilesArray没有类型AnyObject的函数enumerate(),我不知道如何解决这个问题。我对这种语言还很陌生,所以这是目前的一种障碍。
任何帮助都会很棒!如果有任何代码缺失,我很乐意提供。
答案 0 :(得分:4)
你还需要施展到[[Int]]
:
for (row, rowArray) in (tilesArray as! [[Int]]).enumerate() {
甚至更好,你可以使用:
if let tilesArray = dictionary["tiles"] as? [[Int]] {