Swift:通过索引访问字典

时间:2015-08-02 19:25:30

标签: swift uitableview dictionary indexing

我想在UITableViewCells中使用字典中的值。我可以通过使用indexPath.row获取值来获取字典,并使用indexPath.section获取密钥吗?

4 个答案:

答案 0 :(得分:49)

您可以获取密钥数组,并在indexPath.section获取密钥,如下所示:

Array(yourDictionary.keys)[indexPath.section]

您可以从值数组中获取indexPath.row的值,如下所示:

Array(yourDictionary.values)[indexPath.row]

编辑:

如果你想获得特定部分键的值,你应该写:

let key = Array(yourDictionary.keys)[indexPath.section]
let array = yourDictionary[key]
let value = array[indexPath.row]

答案 1 :(得分:7)

词典本质上是无序的。如果您使用dictionary.keys,您可以获得一系列密钥并使用它,正如@Firas在他/她的回答中所说,但是不能保证下次获取密钥数组时它们将在同样的顺序。

另一种选择是使用Int作为密钥类型,然后使用indexPath.row作为密钥。

将数组用作表视图的数据源真的更好。

如果要将分段表视图的值存储在字典中,则应使用外部节数组,该数组包含内部行数组,其中包含单元格值的字典。

答案 2 :(得分:0)

这是我通过索引访问Dictionary的小技巧。只需包装字典!

var dict = [String: [Int]]()

dict.updateValue([1, 2, 3], forKey: "firstKey")
dict.updateValue([3, 4, 5], forKey: "secondKey")

var keyIndex = ["firstKey": "firstKey", "secondKey": "secondKey"]
var arr = [[String: [Int]]]()

for (key, value) in dict {
    arr.append([keyIndex[key]!: value])
}

print(arr[0]) // ["firstKey": [1, 2, 3]]

答案 3 :(得分:0)

您可以使用:

grep -E -i "warn|err"
相关问题