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"
我有以下代码:
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"