gpt4 book ai didi

ios - 向字典添加值不会持久化

转载 作者:行者123 更新时间:2023-11-28 06:43:15 25 4
gpt4 key购买 nike

我正在尝试向 LocalsInformation 类中的本地字典添加值,但数据没有持久化。我在 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)
}

}

最佳答案

为什么信息要持久化?词典是在 RAM 中创建的,一旦您重新加载应用程序,它们就会消失。要将字典持久保存在磁盘上,您需要明确使用持久性机制。 iOS API 提供了几种。一个很容易从字典中使用的是 JSON:

https://www.raywenderlich.com/120442/swift-json-tutorial

但是你也可以使用你自己的文件格式,NSUserDefaults等等

关于ios - 向字典添加值不会持久化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37306287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com