我想在UITableViewCells中使用字典中的值。我可以通过使用indexPath.row获取值来获取字典,并使用indexPath.section获取密钥吗?
答案 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"