如何在Swift中创建和添加值到字典

10

我希望在swift中创建一个具有不同类型数据(数组、字符串、字典)的字典。我可以将新数据插入到键中,但在向它们添加更多值时遇到了困难。下面是该字典的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"
      }
    ]
}

我想逐一将这些值添加到字典中,例如先加入GenInfo,然后是LangInfo的第一种语言,最后是EduInfo。

LangInfo Lang Info

EduInfo EduInfo

我使用dict["GenInfo"] = ["FirstName":first,"LastName":last,"Phone":phone]将GenInfo添加到字典中,其中first和last是具有值的变量。

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


是的,它是变量,并且我已经将GenInfo添加到了其中,但是在添加LangInfo数组值时遇到了问题。 - Varun Naharia
你能否发布一下你尝试添加LangInfo的代码? - atreat
dict["Language"]=[lang] - Varun Naharia
是的,我在赋值时没有收到错误,但问题是我不知道该怎么做。 - Varun Naharia
让我们在聊天中继续这个讨论 - Varun Naharia
显示剩余2条评论
1个回答

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
    }

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