【发布时间】:2017-02-26 20:08:25
【问题描述】:
背景信息:此应用程序扫描颜色,然后,如果用户愿意,使用 UserDefaults 将颜色保存到 UITableView。这里的变量是程序前面使用的算法的副产品。
当我查看表格时,我保存的不是新元素,而是被替换。
这是代码,我正在尝试将其保存到 userdefaults,但我认为 userdefaults 不是问题。
这些是预定义的数组。他们不属于班级。
var NameList = [String]()
var HexCodeList = [String]()
var RedList = [CGFloat]()
var BlueList = [CGFloat]()
var GreenList = [CGFloat]()
这是将变量添加到其相应数组并将它们保存为用户默认值的函数。这是视图控制器类的一部分
@IBAction func SaveColor(_ sender: Any) {
let alertController = UIAlertController(title: "Save Color", message: "Please name the color you would like to save:", preferredStyle: .alert)
let confirmAction = UIAlertAction(title: "Confirm", style: .default) { (_) in
if let field = alertController.textFields?[0] {
// store your data
//ColorList.append(Color(name: field.text!, hexCode: self.hexCode, Red: self.Red, Green: self.Green, Blue: self.Blue))
//UserDefaults.standard.set(ColorList, forKey: "ColorList")
NameList.append(field.text!)
UserDefaults.standard.set(NameList, forKey: "NameList")
HexCodeList.append(self.hexCode)
UserDefaults.standard.set(HexCodeList, forKey: "HexCodeList")
RedList.append(self.Red)
UserDefaults.standard.set(RedList, forKey: "RedList")
GreenList.append(self.Green)
UserDefaults.standard.set(GreenList, forKey: "GreenList")
BlueList.append(self.Blue)
UserDefaults.standard.set(BlueList, forKey: "BlueList")
UserDefaults.standard.synchronize()
print("NameList - 2nd", NameList)
} else {
// user did not fill field
}
}
我很确定这是所有重要的代码,但如果您需要更多帮助我,我很乐意将其全部发布
非常感谢
【问题讨论】:
-
您尝试过建议的答案吗?