如何在swift中将元素添加到字典中?

我有简单的字典,这是定义如下:

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

但是后来我想添加一些元素到这个字典中,这个元素是3 : "efg"

但我不知道如何执行这个行动,我在互联网上search了很多,但没有什么可以帮助我。

有谁可以告诉我如何追加3 : "efg"到这个现有的字典?

你正在使用NSDictionary 。 除非你明确地需要这种types,我build议使用Swift字典。

你可以传递一个Swift字典给期待NSDictionary任何函数,而不需要额外的工作,因为Dictionary<>NSDictionary无缝桥接。 本地Swift方法的优点是字典使用通用types,所以如果用Int作为键和String作为值来定义它,则不能错误地使用不同types的键和值。 (编译器代表您检查types。)

根据我在代码中看到的内容,您的字典使用Int作为键和String作为值。 要创build一个实例并在稍后添加一个项目,您可以使用以下代码:

 var dict = [1: "abc", 2: "cde"] // dict is of type Dictionary<Int, String> dict[3] = "efg" 

如果以后需要将它分配给一个NSDictionarytypes的variables,只需做一个明确的转换:

 let nsDict = dict as! NSDictionary 

而且,正如前面提到的,如果你想把它传递给期望NSDictionary的函数,就不需要进行任何转换或者转换。

您可以使用以下方法添加并将Dictionary更改为NSMutableDictionary

 dict["key"] = "value" 

我知道这可能会很晚,但可能对某人有用。 因此,要将键值对附加到字典中,可以使用updateValue(value:,forKey:)方法,如下所示:

 var dict = [ 1 : "abc", 2 : "cde"] dict.updateValue("efg", forKey: 3) print(dict) 

SWIFT 3 – XCODE 8.1

 var dictionary = [Int:String]() dictionary.updateValue(value: "Hola", forKey: 1) dictionary.updateValue(value: "Hello", forKey: 2) dictionary.updateValue(value: "Aloha", forKey: 3) 

所以,你的字典包含:

字典[1:Hola,2:你好,3:阿罗哈]

如果你的字典是IntString你可以简单地做:

 dict[3] = "efg" 

如果你的意思是增加元素的价值的字典可能的解决scheme:

 var dict = Dictionary<String, Array<Int>>() dict["key"]! += [1] dict["key"]!.append(1) dict["key"]?.append(1) 

在Swift中,如果你使用NSDictionary ,你可以使用setValue

 dict.setValue("value", forKey: "key") 

给出两个字典如下:

 var dic1 = ["a": 1, "c": 2] var dic2 = ["e": 3, "f": 4] 

这里是如何添加从dic2dic1的所有项目:

 dic2.map { dic1[$0.0] = $0.1 } 

干杯A.

Swift 3+

将新值分配给Dictionary的示例 你需要声明它为NSMutableDictionary:

 var myDictionary: NSMutableDictionary = [:] let newValue = 1 myDictionary["newKey"] = newValue print(myDictionary) 
 var dict = ["name": "Samira", "surname": "Sami"] // Add a new enter code herekey with a value dict["email"] = "sample@email.com" print(dict) 

直到现在,我发现通过使用Swift的高级函数之一(即“减less”)将数据附加到字典中的最佳方式。 按照以下代码片段:

 newDictionary = oldDictionary.reduce(*newDictionary*) { r, e in var r = r; r[e.0] = e.1; return r } 

@ Dharmesh在你的情况,这将是,

 newDictionary = dict.reduce([3 : "efg"]) { r, e in var r = r; r[e.0] = e.1; return r } 

如果您在使用上述语法时发现任何问题,请让我知道。

Dict.updateValue更新字典中现有密钥的值,或者如果密钥不存在,则添加新的新的密钥值对。

例-

 var caseStatusParams: [String: AnyObject] = ["userId" : UserDefault.userID ] caseStatusParams.updateValue("Hello" as AnyObject, forKey: "otherNotes") 

结果-

 ▿ : 2 elements - key : "userId" - value : 866 ▿ : 2 elements - key : "otherNotes" - value : "Hello" 

您可以使用另一个testing程序类来设置字典值

 variableValue["X"] = 3.14 

在上面的variableValue是由另一个类创build的字典。 您设定key:value

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

 **let newdictionary = NSDictionary as NSMutableDictionary** 

那么只需使用newdictionary.setValue(value:AnyObject ?, forKey:String)