所以我有一个充满字典数组的数组
例如:
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
}
}
不幸的是,这给了我错误。
答案 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"]
}
}