Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 读取嵌套数组中的值的语法是否正确?_Ios_Arrays_Swift_Dictionary - Fatal编程技术网

Ios 读取嵌套数组中的值的语法是否正确?

Ios 读取嵌套数组中的值的语法是否正确?,ios,arrays,swift,dictionary,Ios,Arrays,Swift,Dictionary,如果有人能帮我的话,我的语法有问题。什么是正确的方式来读取一个整数 数组->目录->数组->目录->数组->[0] 我是Swift 3的新手,在提取变量时遇到问题。任何帮助都将不胜感激。我尝试了以下几点: let sen = dict["senzu"] as? [[String:Any]] let sen1 = dfa?[0][0]["green"] as? Any 为了更清楚地说明这一点,我分为: 数组->目录->数组->目录->数组->[0] 对于分离的级别,假设最后一个数组是级别05

如果有人能帮我的话,我的语法有问题。什么是正确的方式来读取一个整数

数组->目录->数组->目录->数组->[0]

我是Swift 3的新手,在提取变量时遇到问题。任何帮助都将不胜感激。我尝试了以下几点:

let sen = dict["senzu"] as? [[String:Any]]
  let sen1 = dfa?[0][0]["green"] as? Any

为了更清楚地说明这一点,我分为:

数组->目录->数组->目录->数组->[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]
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]
因此,要获取
arrayLevel_05
中的int值:

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]
请注意,它们是可选的,因为您正在从字典中读取值,如果您非常确定将始终获取值,则可以将
替换为
(强制展开)如下所示:

// 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]
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
}
有关什么是选项的更多信息,请选中(可选部分)

希望这有帮助