我有两个字符串元素。我想将它们添加到字典中,然后最终将字典添加到数组中。我试图这样做。..但是它不起作用...
我像这样做了字典。
var receiverDict = Dictionary<String, Any>()
我有两个字符串。
self.abc_Receiver1 = "test1"
和
self.abc_Receiver2 = "test2"
我试图像这样将其添加到字典中。
(self.receiverDict["name"]! as AnyObject).add(self.Smat_Receiver1) //HERE IT CRASHES
(self.receiverDict["id"]! as AnyObject).add(self.receiverId1)
但是它在上面的第一行中崩溃了。
此外,我还制作了一个数组,像这样将上面的字典添加到该数组中...
var arrayOfReceiverNames = [[String: Any]]()
arrayOfReceiverNames.append(self.receiverDict)
但是在向字典本身添加元素时发生崩溃。
答案 0 :(得分:3)
请,我是斯威夫特。您的字典显然是[String:String]
var receiverDict = Dictionary<String, String>()
然后使用本机Swift术语而不桥接到Objective-C运行时,并且add
还是错误的。
receiverDict["name"] = self.Smat_Receiver1
receiverDict["id"] = self.receiverId1
或更简单地一行
let receiverDict = ["name" : self.Smat_Receiver1, "id" : self.receiverId1]
声明数组也更具体
var arrayOfReceiverNames = [[String: String]]()
arrayOfReceiverNames.append(receiverDict)
答案 1 :(得分:1)
您可以通过执行以下操作来实现它:
var dict = [String:Any]()
var arrayOfDict = Array<[String:Any]>()
dict["name"] = someValue
arrayOfDict.append(dict)
希望有帮助。
答案 2 :(得分:1)
如果您已经知道字符串和值,为什么不直接像下面这样添加它们:
var arrayOfDict : [Dictionary<String,String>] = [["name1":"value1"], ["name2":"value2"]]
如果将它们存储在变量中,只需将字符串替换为变量。
对于您而言,
self.abc_Receiver1 = "test1"
self.abc_Receiver2 = "test2"
var arrayOfReceiverNames : [Dictionary<String,String>] = [["id":self.receiverId1], ["name":self.Smat_Receiver1]]
答案 3 :(得分:1)
如果在创建Smat_Receiver1
之前已经为abc_Receiver2
和Dictionary
设置了值,那么您可以简单地使用一个衬垫来创建Dictionary
,即< / p>
let receiverDict = ["name": self.Smat_Receiver1, "id": self.abc_Receiver2]
receiverDict
的类型将自动推断为[String:String]
。
现在,用array
创建receiverDict
,
var arrayOfReceiverNames = [[String:String]]()
arrayOfReceiverNames.append(receiverDict)