Arrays 嵌套在字典中的字典数组中的swift add元素
我有以下代码:Arrays 嵌套在字典中的字典数组中的swift add元素,arrays,swift,dictionary,nested,updates,Arrays,Swift,Dictionary,Nested,Updates,我有以下代码: var TabActions: Dictionary<String, Array<Dictionary<String, String>>> = [:] TabActions = ["EVENT1" : ["TARGET1" : "ACTION1"], ["TARGET2" : "ACTION2"]] 但它会替换该值而不是添加该值,所有其他尝试都会以错误告终 执行此操作的最佳语法是什么?选项卡操作字典包含数组值-要附加到数组,请使用附加方法:
var TabActions: Dictionary<String, Array<Dictionary<String, String>>> = [:]
TabActions = ["EVENT1" : ["TARGET1" : "ACTION1"], ["TARGET2" : "ACTION2"]]
但它会替换该值而不是添加该值,所有其他尝试都会以错误告终
执行此操作的最佳语法是什么?选项卡操作字典包含数组值-要附加到数组,请使用
附加
方法:
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=[:]
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=[:]
TabActions=[“EVENT1”:[“TARGET1”:“ACTION1”,“TARGET2”:“ACTION2”]]
选项卡操作[“事件1”]?[“目标3”]=“操作3”
感谢您的快速回答!如果第一个键不存在,我会怎么做?因为追加不会像你说的那样做。谢谢。在您的第二个命题(没有数组)中,如果我想要创建键和与此键关联的嵌套字典元素(“TARGET3”、“ACTION3”),那么如果第一个键(EVENT1)不存在该怎么办?好的一点是,您需要检查给定键是否存在字典:如果让targets=TabActions[“EVENT2”]{TabActions[“EVENT2”]?[“TARGET3”]=“ACTION3”}其他{TabActions[“EVENT2”]=“TARGET3”:“ACTION3”]}
TabActions
应为TabActions
实例小写-类/结构定义大写
var TabActions: Dictionary<String, Dictionary<String, String>> = [:]
TabActions = ["EVENT1" : ["TARGET1" : "ACTION1", "TARGET2" : "ACTION2"]]
TabActions["EVENT1"]?["TARGET3"] = "ACTION3"