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

swift add element in a array of dictionary nested in a dictionary

我有以下代码:

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

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

我想将 ["TARGET3" : "ACTION3"] 添加到列表中,但我不知道该怎么做。我试过了:

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

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

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

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

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

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

如果您确实需要所提供的字典数组字典,那么 Antonio 的答案是正确的,append 将完成这项工作:

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"