迭代字典数组

时间:2014-12-21 04:29:26

标签: ios xcode swift

所以我有一个充满字典数组的数组

例如:

var array1 = ["key1":"value1","key2":"value2"]
var array2 = ["key1":"value1","key2":"value2"]
var array3 = ["key1":"value1","key2":"value2"]

**钥匙和钥匙值在整个数组中是一致的

然后我有一个包含那些数组的大数组

例如:

var bigArray = [array1,array2,array3]

如何使用for循环遍历所有内容,以便我可以读取每个数组中每个字典中的每个键/值。

目标-c我可以很容易地做到这一点,但我刚刚开始使用swift并且我遇到了错误(由于投射,我非常确定)

现在我有类似的东西

for arr in bigArray as NSArray {
     for dict in arr as NSDictionary {
         var coordinates : NSString = dict["coordinate"] as NSString
     }
}

不幸的是,这给了我错误。

1 个答案:

答案 0 :(得分:1)

问题是你的3个“数组”实际上是字典。您将它们声明为键值对列表。这意味着你的循环看起来像这样:

var array1 = ["key1":"value1","key2":"value2"]
var array2 = ["key1":"value1","key2":"value2"]
var array3 = ["key1":"value1","key2":"value2"]

var bigArray = [array1,array2,array3]

for dict in bigArray {
    var coordinates = dict["coordinate"]
}

另外,您会注意到我没有对NSArray或NSDictionary类型进行任何转换。最好只使用Swift本机容器,这样就不必经常将类型转换为其他类型。

如果你实际上有一个大数组中的字典数组,它将如下所示:

var array1 = [["key1":"value1"],["key2":"value2"]]
var array2 = [["key1":"value1"],["key2":"value2"]]
var array3 = [["key1":"value1"],["key2":"value2"]]

var bigArray = [array1,array2,array3]

for arr in bigArray {
    for dict in arr {
        var coordinates = dict["coordinate"]
    }
}