如何在swift中创建和添加值到Dictionary

Var*_*ria 9 dictionary ios swift

我想在swift中使用不同类型的数据(数组,字符串,字典)创建一个Dictionary我能够将新数据插入到一个键中,但是在这里很难为它们添加更多的值是字典的json

{
  "GenInfo": {
    "First Name":"Varun",
    "Last Name":"Naharia",
    "Phone No":"123456789"
  },
  "LangInfo": ["Hindi","English","Urdu","French"],
  "EduInfo": 
    [
      {
        "Collage":"CIITM",
        "Year":"2009",
        "Degree":"BCA"
      },
      {
        "Collage":"Dept. Of Comp. Sci. & Infor. University Of Kota",
        "Year":"2013",
        "Degree":"MCA"
      }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我想将这些值逐个添加到字典中,如第一个GenInfo,然后是LangInfo的第一语言,然后是EduInfo

LangInfo 郎信息

EduInfo EduInfo

我习惯dict["GenInfo"] = ["FirstName":first,"LastName":last,"Phone":phone]在dic中添加GenInfo,其中first和last是带值的变量.

编辑#1 var dict = Dictionary<String, Any>()

Rem*_*lia 9

这是一个已知的问题,显然还没有修复(参见是否可以将一个带有可变数组的字典作为Swift中的值)

解决方法是使用您的数组创建一个新变量,然后将其分配回来:

    var dict = [String: AnyObject]()
    dict["GenInfo"] = ["FirstName":"first","LastName":"last","Phone":"phone"]
    dict["Language"] = ["langage1", "langage2"]

    if var languages = dict["Language"] as? [String] {
        languages.append("langage3")
        dict["Language"] = languages
    }
Run Code Online (Sandbox Code Playgroud)