Swift 数组变量问题

Swift Array var issue

    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数组有追加"Four",但在字典中没有,如何在字典中追加一个元素?

在Swift中,数组被实现为structs,当它们在您的代码中传递时总是被复制,并且不使用引用计数。也就是说,array 在您的示例中成为 dictionary[1] 的副本,因此更新其内容不会影响原始词典。

你应该怎么做:

dictionary["1"]?.append("Four")

与Objective-C不同,Swift中的集合不是引用类型。这意味着数组、字典、字符串和几乎所有东西的行为都像 C/Objective-C 中的原语(对象除外,它们是 类 的实例,而不是结构或枚举)

您可以在此官方 Apple 页面中找到更多详细信息:Value and Reference Types