добавление пары значений ключа к существующим значениям словаря в swift - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь добиться результатов ниже. Где я могу сохранить несколько значений ключей для нескольких строковых элементов.

//dict["Setting1"] = ["key1":"val1"]
//dict["Setting1"] = ["key2":"val2"]
//dict["Setting2"] = ["key1":"val1"]
//dict["Setting2"] = ["key2":"val2"]
// and so on..
//or
//dict["Setting1"].append(["key2":"val2"]) // this doesn't work

//accessing dict["Settings1"]["key1"]    ..should give me val1

var dict = [String:[String:String]]()

var lst1 = ["key2":"val2"]
dict["one"] = ["key1":"val1"]

dict["one"]?.append(lst1)

print(dict)

дает мне ошибку

error: value of type '[String : String]' has no member 'append'
obj["one"]?.append(lst1)
~~~~~~~~~~~ ^~~~~~

1 Ответ

1 голос
/ 03 августа 2020

Вы используете Dictionary, у которого нет таких методов, как append(_:). append(:_) добавляет что-то к end из Array, но Dictionaries неупорядочены.

Чтобы добавить что-то в Dictionary, вы сначала определяете ключ для него, а затем присвойте ему значение в Dictionary

Это будет выглядеть так:

var dict = [String :[String: String]]()
var lst1 = ["key2": "val2"]
dict["one"] = ["key1": "val1"]

Но вы не можете добавить к dict["one"], потому что это не массив , можно только перезаписать

dict["one"] = lst1
...