我有一个简单的字典,它的定义如下:
var dict : NSDictionary = [ 1 : "abc", 2 : "cde"]
现在我想在这个字典中添加一个元素:3:"efg"
我如何能追加3:“efg”到这个现有的字典?
我有一个简单的字典,它的定义如下:
var dict : NSDictionary = [ 1 : "abc", 2 : "cde"]
现在我想在这个字典中添加一个元素:3:"efg"
我如何能追加3:“efg”到这个现有的字典?
当前回答
在字典中没有附加数据的函数。您只需根据现有字典中的新键分配值。它将自动向字典中添加值。
var param = ["Name":"Aloha","user" : "Aloha 2"]
param["questions"] = "Are you mine?"
print(param)
输出是这样的
["名称":“阿罗哈”,“用户”:“阿罗哈2”,“问题”:“你是我的”吗?”)
其他回答
在Swift中,如果你使用NSDictionary,你可以使用setValue:
dict.setValue("value", forKey: "key")
如果你想修改或更新NSDictionary那么 首先,将它类型转换为NSMutableDictionary
let newdictionary = NSDictionary as NSMutableDictionary
然后简单地使用
newdictionary.setValue(value: AnyObject?, forKey: String)
你在使用NSDictionary。除非你出于某种原因明确需要它是那种类型,否则我建议使用Swift字典。
你可以将一个Swift字典传递给任何需要NSDictionary的函数,而不需要任何额外的工作,因为dictionary <>和NSDictionary无缝地桥接在一起。原生Swift方式的优点是字典使用泛型类型,所以如果你用Int作为键,String作为值来定义它,你就不会错误地使用不同类型的键和值。(编译器会替你检查类型。)
根据我在你的代码中看到的,你的字典使用Int作为键和字符串作为值。要创建一个实例并在稍后添加一个项,您可以使用以下代码:
var dict = [1: "abc", 2: "cde"] // dict is of type Dictionary<Int, String>
dict[3] = "efg"
如果你以后需要将它赋值给NSDictionary类型的变量,只需要进行显式强制转换:
let nsDict = dict as! NSDictionary
并且,如前所述,如果你想将它传递给一个期望NSDictionary的函数,就按原样传递它,不需要任何强制转换或转换。
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: Hello, 3: Aloha]
我知道这可能会很晚,但它可能会对某人有用。 因此,在swift中将键值对追加到字典中,你可以使用updateValue(value:, forKey:)方法,如下所示:
var dict = [ 1 : "abc", 2 : "cde"]
dict.updateValue("efg", forKey: 3)
print(dict)