我有一个简单的字典,它的定义如下:

var dict : NSDictionary = [ 1 : "abc", 2 : "cde"]

现在我想在这个字典中添加一个元素:3:"efg"

我如何能追加3:“efg”到这个现有的字典?


当前回答

如果你想修改或更新NSDictionary那么 首先,将它类型转换为NSMutableDictionary

let newdictionary = NSDictionary as NSMutableDictionary

然后简单地使用

 newdictionary.setValue(value: AnyObject?, forKey: String)

其他回答

如果你的字典是Int到String,你可以简单地做:

dict[3] = "efg"

如果你的意思是向字典的值中添加元素,一个可能的解决方案是:

var dict = Dictionary<String, Array<Int>>()

dict["key"]! += [1]
dict["key"]!.append(1)
dict["key"]?.append(1)

在字典中没有附加数据的函数。您只需根据现有字典中的新键分配值。它将自动向字典中添加值。

var param  = ["Name":"Aloha","user" : "Aloha 2"]
param["questions"] = "Are you mine?"
print(param)

输出是这样的

["名称":“阿罗哈”,“用户”:“阿罗哈2”,“问题”:“你是我的”吗?”)

如果你想修改或更新NSDictionary那么 首先,将它类型转换为NSMutableDictionary

let newdictionary = NSDictionary as NSMutableDictionary

然后简单地使用

 newdictionary.setValue(value: AnyObject?, forKey: String)

我添加了字典扩展

extension Dictionary {   
  func cloneWith(_ dict: [Key: Value]) -> [Key: Value] {
    var result = self
    dict.forEach { key, value in result[key] = value }
    return result  
  }
}

你可以像这样使用克隆

 newDictionary = dict.reduce([3 : "efg"]) { r, e in r.cloneWith(e) }

添加新元素只需设置:

listParameters["your parameter"] = value