var dictionary = ["1": ["One","Two","Three"],
"2": ["A","B","C"]
]
var array = dictionary ["1"]
array!.append("Four")
print("array Count: \(array!.count) array In DictionaryCount: \(dictionary ["1"]!.count)")
//array Count: 4 array In Dictionary Count: 3
var array附加了“Four”,但在字典中它不是,如何在字典中附加元素?
答案 0 :(得分:2)
在Swift中,数组实现为structs,并且它们在代码中传递时始终被复制,并且不使用引用计数。话虽如此,array
在您的示例中成为dictionary[1]
的副本,因此更新其内容不会影响原始字典。
你应该做什么:
dictionary["1"]?.append("Four")
答案 1 :(得分:0)
与Objective-C不同,Swift中的集合不是引用类型。这意味着数组,字典,字符串和几乎所有内容都像C / Objective-C中的原语一样(除了对象,它们是类的实例,而不是结构或枚举)
您可以在此官方Apple页面中找到更多详细信息:Value and Reference Types