我使用Swift。
我有一个字典变量。
字典看起来像JSON结构。
因此,key:value类型为String: AnyObject。
我想在字典的深层设置一个值。
var dic1: [String: AnyObject] = [String: AnyObject]()如果是print dic1,则如下所示。
{
"a-1": 1,
"a-2": "a-2-1,
"a-3": [
{
"b-1": "hi",
"b-2": 10,
"b-3": [
{
"c-1": 100
},
{
"c-1": 101,
"c-2": "aaa"
},
]
},
{
"b-1": "hello",
"b-2": 20,
"b-3": [
{
"c-1": 200
},
{
"c-1": 201,
"c-2": "bbb"
}
]
// <- want to set to here
}
]
}然后,我想给键"b-4“设置一些值。
我尝试了下面的方法,但是xcode抛出了"Cannot assign to immutable expression of type 'AnyObject'“错误。
((dic1["a-3"] as? [[String: AnyObject]])?[1] as? [String: AnyObject])?["b-4"] = blahblah as AnyObject发布于 2020-07-20 15:34:37
错误消息说,您正在尝试更改不可变对象,这是不可能的。因为在Swift中,Dictionary是一个值类型。
首先将需要修改的对象获取到一个变量,修改后再赋值回来。Smth如下所示:
var a3 = (dic1["a-3"] as? [[String: AnyObject]])
a3?[1]["b-4"] = blahblah as AnyObject
dic1["a-3"] = a3 as AnyObjecthttps://stackoverflow.com/questions/62989944
复制相似问题