swift在嵌套在字典中的字典数组中添加元素

时间:2015-01-25 14:09:43

标签: arrays swift dictionary nested updates

我有以下代码:

var TabActions: Dictionary<String, Array<Dictionary<String, String>>> = [:]

TabActions = ["EVENT1" : ["TARGET1" : "ACTION1"], ["TARGET2" : "ACTION2"]]

我想在列表中添加[“TARGET3”:“ACTION3”],但我无法想象如何做到这一点。我试过了:

TabActions["EVENT1"] = [["TARGET3" : "ACTION3"]]

但它替换了值而不是添加它,所有其他尝试都以错误

结束

执行此操作的最佳语法是什么?

2 个答案:

答案 0 :(得分:2)

如果你确实需要一本字典数组字典,那么安东尼奥的回答是正确的,追加就可以了:

var TabActions: Dictionary<String, Array<Dictionary<String, String>>> = [:]
TabActions = ["EVENT1" : [["TARGET1" : "ACTION1"], ["TARGET2" : "ACTION2"]]]

TabActions["EVENT1"]?.append(["TARGET3" : "ACTION3"])

另一方面,如果您可以使用更简单的字典词典,那么您只需要这样做:

var TabActions: Dictionary<String, Dictionary<String, String>> = [:]       
TabActions = ["EVENT1" : ["TARGET1" : "ACTION1", "TARGET2" : "ACTION2"]]

TabActions["EVENT1"]?["TARGET3"] = "ACTION3"

答案 1 :(得分:0)

TabActions字典包含数组值 - 要附加到数组,请使用append方法:

TabActions["EVENT1"]?.append(["TARGET3": "ACTION3"])

请注意,如果找不到EVENT1密钥,则不会进行添加。