Swift2枚举字典项上的函数

时间:2015-09-27 01:27:20

标签: ios swift dictionary

我正在关注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(),我不知道如何解决这个问题。我对这种语言还很陌生,所以这是目前的一种障碍。

任何帮助都会很棒!如果有任何代码缺失,我很乐意提供。

1 个答案:

答案 0 :(得分:4)

你还需要施展到[[Int]]

for (row, rowArray) in (tilesArray as! [[Int]]).enumerate() {

甚至更好,你可以使用:

if let tilesArray = dictionary["tiles"] as? [[Int]] {