Swift:访问字典数组

时间:2016-06-13 10:50:09

标签: arrays swift dictionary

我目前正在努力从字典数组中的数组中获取值。基本上我想抓住第一个" [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(子路径) - 但我只需要找到一种方法在字典数组中显示数组。

提前致谢。

2 个答案:

答案 0 :(得分:4)

如果您知道"Hobbies"是有效密钥且其字典值是String的数组,那么您可以直接访问该数组中的第一项:

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

但如果"Hobbies"不是有效密钥或价值不是[String],则会崩溃。

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

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

答案 1 :(得分:1)

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

鉴于此模型struct

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"]
相关问题