繁体   English   中英

Swift:访问字典数组中的数组值

[英]Swift: Accessing array value in array of dictionaries

我目前正在努力从字典数组中的数组中获取值。 基本上我想从存储在字典数组中的数组中获取第一个“[0]”。 这基本上就是我所拥有的:

var array = [[String:Any]]()
var hobbies:[String] = []
var dict = [String:Any]()

viewDidLoad代码:

dict["Name"] = "Andreas"
hobbies.append("Football", "Programming")
dict["Hobbies"] = hobbies
array.append(dict)

/// - 但是,我只能使用以下代码显示名称:

var name = array[0]["Name"] as! String
  • 但我希望能够显示存储在名称中的数组中的第一个值。 这怎么可能?

是的; 我知道这种方法还有其他选择,但这些值来自Firebase(子路径) - 但我只需找到一种方法在字典数组中显示数组。

提前致谢。

如果你知道"Hobbies"是一个有效的键,它的字典值是一个String数组,那么你可以直接访问该数组中的第一项:

let hobby = (array[0]["Hobbies"] as! [String])[0]

但如果"Hobbies"不是有效键或者值不是[String]则会崩溃。

访问阵列的更安全的方法是:

if let hobbies = array[0]["Hobbies"] as? [String] {
    print(hobbies[0])
}

如果使用模型类/结构体,则事情变得更容易

鉴于此模型结构

struct Person {
    let name: String
    var hobbies: [String]
}

而这本词典

var persons = [String:Person]()

这就是你把一个人放进字典里的方法

let andreas = Person(name: "Andreas", hobbies: ["Football", "Programming"])
persons[andreas.name] = Andreas

这就是你如何检索它

let aPerson = persons["Andreas"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM