向 [String : AnyObject] 或 [String : String] 中追加值

3
我希望将值添加到类型为[String : AnyObject]的变量中,应该如何操作?因为我无法进行以下操作。
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参数的方法,因为Alamofire.request使用的是[String: AnyObject]


是的,我发完帖子后才注意到这个问题。 - Zonily Jame
3个回答

15

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

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

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

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

object["Work"] = "Soldier"

了解更多信息,请阅读此文档 Dictionary


哦,所以我一开始就从错误的角度看待了这个问题。 - Zonily Jame
一些对象["工作"] = "士兵"。可能能够最好地理解。 - Nazmul Hasan

3

试试这个:

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

我们试图解决的问题是,我们无法自动地将String转换为NSString(NSString是一个AnyObject,但String不是),因此我们必须通过强制类型转换来手动跨越桥梁。

另一方面,最好使用[String:String]进行工作,并在与Alamofire交谈时将其整个字典交给它之前再进行转换。 - matt
哦,原来是这样添加值的。 - Zonily Jame
如果这对您有所帮助,请点击接受按钮。谢谢 :) - Muzahid

1
初始化字典
var dic = [String: Any]()

或者

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

追加值。
dic["age"] = 25

更新数值。
dic.updateValue("Jan", forKey: "firstName")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接