swift3 - 如何访问数组中的字典?

时间:2017-03-16 10:05:08

标签: swift swift3

我想为我的世界时钟应用程序制作几个字典数组:

let countriesList = [
    ["country": "Tokyo, Japan", "gmc": "GMT+9"],
    ["country": "New York, USA", "gmc": "GMT-5"]
]

由于我没有收到任何错误,我认为这没关系。 现在我的问题是,我如何访问每个国家? 我试图将它们全部列入一张桌子,我用谷歌搜索但我一无所获。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:5)

强烈建议为此目的使用自定义结构:

struct Country {
    let name, gmc : String
}

let countriesList = [
    Country(name: "Tokyo, Japan", gmc: "GMT+9"),
    Country(name: "New York", gmc: "GMT-5")
]

现在在cellForRow,您可以轻松访问这些属性:

let country = countriesList[indexPath.row]
cell.textLabel?.text = country.name
cell.detailTextLabel?.text = country.gmc

没有密钥订阅,没有类型转换,没有可选绑定,没有问题; - )

您可以使用

打印所有名称
print(countryList.map{ $0.name })

答案 1 :(得分:2)

在您要设置国家/地区的cellForRowAt方法中。

cell.lblCountry.text = self.countriesList[indexPath.row]["country"] as? String

如果你想要你的字典数组中的所有国家/地区列表。

let countries = self.countriesList.flatMap { $0["country"] as? String } 

通过这个,您将获得包含所有country值的字符串数组。

答案 2 :(得分:1)

您可以使用下标:

Grid