我正在创建我的第一个有待办事项列表的应用。列表项存储在一个数组中并显示在表视图中,但是当关闭应用程序时,项目不再存在。我尝试使用用户默认值来保存项目,但到目前为止还没有工作。我究竟做错了什么?我试图使用保存数据的按钮。
///button to save the data
@IBAction func savelist(_ sender: Any) {
let defaults = UserDefaults.standard
defaults.set(list, forKey: "SavedArray")
myTableView.reloadData()
}
//// retrieving the data
override func viewDidLoad()
{
super.viewDidLoad()
let defaults = UserDefaults.standard
let array = defaults.stringArray(forKey: "SavedArray") ?? [String]()
myTableView.reloadData()
}
我也是这样做的,当我按下保存按钮时,阵列将被打印到控制台,以便我知道这些项目正被添加到数组中。问题是我无法保存这些物品。谢谢!
答案 0 :(得分:0)
我解决了这个问题: 然而,在关闭我正在使用的应用程序
之后检索数据时,我的数组被称为列表 let array = defaults.stringArray(forKey: "SavedArray") ?? [String]()
所以我把它改成了:
list = defaults.stringArray(forKey: "SavedArray") ?? [String]()
我还添加了之前答案提出的建议。我将默认值设置为全局变量,然后添加了
defaults.synchronize()
按钮操作
答案 1 :(得分:-1)
您的问题似乎不是检索字符串数组,而是将元素添加到数组中。
如果您还没有[String],请考虑定义您的列表:
var list = [String]()
如果要向阵列添加元素,请使用以下命令:
list.append(txtField.text!)
我希望这能解决你的问题。祝你好运!