簡體   English   中英

將值添加到復雜的字典Swift

[英]Adding values to complex dictionary Swift

我是Swift的新手,很難為復雜的字典添加新值。 下面的代碼更新了字典中已經存在的值(例如Jerry和Beth),但是如果我嘗試添加新值,則字典僅顯示兩個值,而不是三個。

var locals: [String: Dictionary<String, String>] = ["Jerry":["City":Destination.Seattle.rawValue,"Preference": TravellingPreference.Adventurer.rawValue, "Gender": Gender.Male.rawValue],"Beth":["City":Destination.Seattle.rawValue,"Preference":TravellingPreference.Foodie.rawValue, "Gender": Gender.Female.rawValue]]

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
{
    let citySelected = localInput[0][pickerView.selectedRowInComponent(0)]
    let preferenceSelected = localInput[1][pickerView.selectedRowInComponent(1)]
    var localInformation = LocalsInformation().locals
   if let name = nameTextField.text{
        localInformation[name]?["City"] = citySelected
        localInformation[name]?["Preference"] = preferenceSelected
        localInformation[name]?["Gender"] = "Female"
    print(localInformation)
    }

}
localInformation[name]?["City"] = citySelected

? 基本上意味着(在這種情況下)如果localInformation[name]nil ,則什么也不做,這很可能是這種情況。 您可能想這樣做:

localInformation[name] = [
    "City": citySelected,
    "Preference": preferenceSelected,
    "Gender": "Female"
]

話雖如此,我強烈建議您在任何可能的地方使用struct而不是字典。 這將更易於處理(因為您不會誤拼密鑰,並且您不必處理盡可能多的可選鍵),並且它將使您的代碼更清晰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM