Ios 将元素添加到空字典,然后添加到数组
我有两个字符串元素。我想将它们添加到字典中,最后,将字典添加到数组中。我试着这样做…但不起作用 我做了一本这样的词典Ios 将元素添加到空字典,然后添加到数组,ios,swift,dictionary,Ios,Swift,Dictionary,我有两个字符串元素。我想将它们添加到字典中,最后,将字典添加到数组中。我试着这样做…但不起作用 我做了一本这样的词典 var receiverDict=Dictionary() 我拥有的两条字符串是 self.abc\u Receiver1=“test1”& self.abc\u Receiver2=“test2” 我试着把它添加到字典里,就像这样 (self.receiverDict["name"]! as AnyObject).add(self.Smat_Receiver1) //HERE
var receiverDict=Dictionary()
我拥有的两条字符串是
self.abc\u Receiver1=“test1”
&
self.abc\u Receiver2=“test2”
我试着把它添加到字典里,就像这样
(self.receiverDict["name"]! as AnyObject).add(self.Smat_Receiver1) //HERE IT CRASHES
(self.receiverDict["id"]! as AnyObject).add(self.receiverId1)
但它在上面的第一行崩溃了
此外,我还制作了一个这样的数组,将上面的字典添加到此数组中,如下所示
var arrayofreceivenames=[[String:Any]]()
arrayOfReceiverNames.append(self.receiverDict)
但崩溃是在向字典本身添加元素时发生的。您可以通过以下操作来实现:
var dict = [String:Any]()
var arrayOfDict = Array<[String:Any]>()
dict["name"] = someValue
arrayOfDict.append(dict)
var dict=[String:Any]()
var arrayOfDict=Array()
dict[“name”]=someValue
arrayOfDict.append(dict)
希望有帮助。如果您已经知道字符串和值,为什么不直接添加它们,如下所示:
var arrayOfDict : [Dictionary<String,String>] = [["name1":"value1"], ["name2":"value2"]]
var arrayOfDict:[Dictionary]=[[“name1”:“value1”],[“name2”:“value2”]]
如果将它们存储在变量中,只需将字符串替换为变量即可
所以在你的情况下
self.abc_Receiver1 = "test1"
self.abc_Receiver2 = "test2"
var arrayOfReceiverNames : [Dictionary<String,String>] = [["id":self.receiverId1], ["name":self.Smat_Receiver1]]
self.abc\u Receiver1=“test1”
self.abc_Receiver2=“test2”
var arrayOfReceiverNames:[字典]=[[“id”:self.receiverId1],“name”:self.Smat_Receiver1]]
请,我是斯威夫特。你的字典显然是[String:String]
var receiverDict = Dictionary<String, String>()
或者简单一点
let receiverDict = ["name" : self.Smat_Receiver1, "id" : self.receiverId1]
声明数组也更具体
var arrayOfReceiverNames = [[String: String]]()
arrayOfReceiverNames.append(receiverDict)
如果在创建
词典之前,您已经为Smat\u receiver 1
和abc\u receiver 2
设置了值,那么您只需使用一行代码即可创建词典
,即
let receiverDict = ["name": self.Smat_Receiver1, "id": self.abc_Receiver2]
receiverDict
的类型将自动推断为[String:String]
现在,使用receiverDict
as创建数组
var arrayOfReceiverNames = [[String:String]]()
arrayOfReceiverNames.append(receiverDict)
self.receiverDict[“name”]=self.Smat_Receiver1;self.receiverDict[“id”]=self.receiverId1
?您可能不应该首先使用字典。如果您有一组固定的键(id
,name
),您可能应该使用struct
或类。这将从根本上简化您的代码(因为不再有任何和到处施放),甚至有可能加速它
var arrayOfReceiverNames = [[String:String]]()
arrayOfReceiverNames.append(receiverDict)