为了更清楚,我分开了:
数组 -> 字典 -> 数组 -> 字典 -> 数组 -> [0]
分层次,假设最后一个数组是05级,第一个数组是01级,如下:
// Array of Ints
var arrayLevel_05 = [1, 2, 3, 4]
// Dict of arrays of ints
var dictLevel_04: [String: [Int]] = ["myArray01": arrayLevel_05]
// Array of dicts of arrays of ints
var arrayLevel_03:[[String: [Int]]] = [dictLevel_04]
// Dict of arrays of dicts of arrays of ints
var dictLevel_02: [String: [[String: [Int]]]] = ["myArray02": arrayLevel_03]
// Array of dict of arrays of dicts of arrays of ints
var arrayLevel_01:[[String : [[String : [Int]]]]] = [dictLevel_02]
所以,为了获取arrayLevel_05 中的整数值:
let one = arrayLevel_01[0]["myArray02"]?[0]["myArray01"]?[0]
let tow = arrayLevel_01[0]["myArray02"]?[0]["myArray01"]?[1]
let three = arrayLevel_01[0]["myArray02"]?[0]["myArray01"]?[2]
请注意,它们是可选的,因为您正在从字典中读取值,如果您非常确定您将总是获得一个值,您可以替换 ?使用!(强制展开)如下:
let one = arrayLevel_01[0]["myArray02"]![0]["myArray01"]![0]
let tow = arrayLevel_01[0]["myArray02"]![0]["myArray01"]![1]
let three = arrayLevel_01[0]["myArray02"]![0]["myArray01"]![2]
或者按照可选绑定的方式:
if let arrayLevel03 = arrayLevel_01[0]["myArray02"], let arrayLevel05 = arrayLevel03[0]["myArray01"] {
let one = arrayLevel05[0] // 1
let tow = arrayLevel05[1] // 2
let three = arrayLevel05[2] // 3
}
有关什么是可选项的更多信息,请查看Apple Documentation(可选部分)。
希望这会有所帮助。