背景情報:このアプリケーションは色をスキャンし、ユーザーが希望する場合は色をUserDefaultsを使用しているUITableView。ここでの変数は、プログラムの初期に使用されたアルゴリズムの副産物です。swift 3で.append()を使用すると、配列の要素が新しい要素を取得する配列の代わりに置換されます
テーブルを見ると、新しい要素ではなく、保存した要素が置き換えられます。
これはコードですが、これをuserdefaultsに保存しようとしていますが、userdefaultsは問題ではないと思います。
これらはあらかじめ定義された配列です。彼らはクラスの一部ではありません。
var NameList = [String]()
var HexCodeList = [String]()
var RedList = [CGFloat]()
var BlueList = [CGFloat]()
var GreenList = [CGFloat]()
これは、対応する配列に変数を追加してユーザーのデフォルト値に保存する関数です。これはViewControllerをクラス
@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
}
}
の一部である私は、これが問題にすべてのコードであるかなり確信している、しかし、あなたは私を助けるために多くを必要とする場合、私は喜んでそれをすべて
おかげで多くの
を掲載します
提案された回答を試しましたか? –