将值附加到[String:AnyObject]或[String:String]

时间:2016-10-27 03:21:56

标签: swift dictionary parameters alamofire

我想将值附加到[String : AnyObject]类型的变量,我该怎么做?因为我不能做ff。

var someObject:[String : AnyObject] = ["name":"John Diggle", "location":"Star City Prison"]

someObject.append(["work":"soldier"])        // does not work  (by that I mean there is no .append function like that of other collection types such as NSMutableArray and NSMutableDictionary
someObject = someObject + ["work":"soldier"] // does not work

自从Alamofire.request使用[String : AnyObject]

以来,我找到了为Alamofire制作更简单参数的方法

3 个答案:

答案 0 :(得分:8)

您提到的数据类型称为Dictionary。 Swift词典不提供API append(_ newElement:)。 Dictionary是一种哈希表。表中的每个条目都使用其密钥进行标识。

如果您想添加新项目(键,值),只需在新键下添加新值:

object["Work"] = "Soldier"

有关详细信息,请参阅此文档Dictionary

答案 1 :(得分:3)

试试这个:

someObject["work"] = "soldier" as NSString

我们试图解决的问题是我们没有从String到NSString的自动桥接(NSString AnyObject,但String不是),所以我们必须越过桥我们自己通过铸造。

答案 2 :(得分:0)

初始化字典

orElseGet

var dic = [String: Any]()

附加值

var dic : [String: Any] = ["firstName": "John", "lastName": "Doe"]

更新值

dic["age"] = 25