Ios 向字典添加值不会持久

Ios 向字典添加值不会持久,ios,swift,class,dictionary,persist,Ios,Swift,Class,Dictionary,Persist,我试图向LocalsInformation类中的locals字典添加值,但数据没有持久化。我在print(localInformation)上设置了一个断点,我可以看到字典中添加了一个新值,但当我重新加载应用程序时,该值不会持续存在。我相信我可能只是在更改本地人词典的副本,而不是实际值 class LocalsInformation{ var locals: [String: Dictionary<String, String>] = ["Jerry":["City":Destina

我试图向LocalsInformation类中的locals字典添加值,但数据没有持久化。我在print(localInformation)上设置了一个断点,我可以看到字典中添加了一个新值,但当我重新加载应用程序时,该值不会持续存在。我相信我可能只是在更改本地人词典的副本,而不是实际值

class LocalsInformation{
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]}

let localInput = [[Destination.Austin.rawValue, Destination.Boston.rawValue, Destination.Chicago.rawValue, Destination.NewYork.rawValue, Destination.SanFrancisco.rawValue, Destination.Seattle.rawValue],[TravellingPreference.Adventurer.rawValue, TravellingPreference.ArtDesignLover.rawValue, TravellingPreference.CulturalExplorer.rawValue, TravellingPreference.Foodie.rawValue, TravellingPreference.HistoryBuff.rawValue, TravellingPreference.NightOwl.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)]
    if let name = nameTextField.text{
        var localInformation = LocalsInformation().locals
        localInformation[name] = [
            "City": citySelected,
            "Preference": preferenceSelected,
            "Gender": "Female"
        ]
        LocalsInformation().locals[name] = localInformation[name]
    print(localInformation)
    }

}
类本地信息{
var locals:[字符串:Dictionary]=[“Jerry”:[“City”:Destination.settle.rawValue,“Preference”:travelingpreference.adventorr.rawValue,“Gender”:Gender.Male.rawValue],“Beth”:[“City”:Destination.settle.rawValue,“Preference”:travelingpreference.Foodie.rawValue,“Gender”:Gender.Female.rawValue])
让localInput=[[Destination.Austin.rawValue,Destination.Boston.rawValue,Destination.Chicago.rawValue,Destination.NewYork.rawValue,Destination.SanFrancisco.rawValue,Destination.西雅图.rawValue],[TravelingPreference.Adventurer.rawValue,TravelingPreference.ArtDesignLover.rawValue,TravelingPreference.CulturalExplorer.rawValue,TravelingPreference.Foodie.rawValue,TravelingPreference.HistoryBuff.rawValue,TravelingPreference.NightOwl.rawValue]]
func pickerView(pickerView:UIPickerView,didSelectRow行:Int,不完整组件:Int)
{
让citySelected=localInput[0][pickerView.SelectedRowUncomponent(0)]
让preferenceSelected=localInput[1][pickerView.SelectedRowUncomponent(1)]
如果let name=nameTextField.text{
var localInformation=LocalsInformation().locals
本地信息[名称]=[
“城市”:城市选择,
“首选项”:选择首选项,
“性别”:“女性”
]
LocalsInformation().locals[name]=localInformation[name]
打印(本地信息)
}
}

为什么信息要持久化?字典是在RAM中创建的,一旦你重新加载应用程序,它们就会消失。要在磁盘上持久化字典,你需要显式地使用持久化机制。iOS API提供了几种。从字典中可以轻松使用的一种是JSON:


但您也可以使用自己的文件格式、NSUserDefaults等。

我认为您应该首先非常了解使用编程语言编写代码时程序、应用程序等的一般工作原理。您的信息仅在应用程序运行时保存在内存中,然后再发布所有信息。要保存数据,您需要找到另一种方法,如
NSUserDefaults
、CoreData等,您应该在google
持久化数据ios
中找到。