背景信息:此應用程序掃描一種顏色,然後,如果用戶想要將顏色保存到UITableView使用UserDefaults。這裏的變量是程序中較早使用的算法的副產品。在swift 3中使用.append()時,數組中的元素被替換而不是數組獲得新元素
當我查看錶格而不是新元素時,我保存的那個被替換。
這裏是代碼,我試圖將此保存到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
}
}
我敢肯定,這就是一切的代碼,但如果你需要更多的幫助我,我會很樂意將它張貼所有
感謝很多
你有沒有試過這個建議的答案? –