用户默认设置不会加载或保存

问题描述

UserDefaults一个奇怪的问题:有时可以保存和加载,但有时不起作用。

class ViewController: UIViewController {

    @IBOutlet var text: UITextField!
    var savedArray : [String] = []
    override func viewDidLoad() {
        super.viewDidLoad()
        savedArray = UserDefaults.standard.object(forKey: "arr") as? [String] ?? [String]()
        print (savedArray)
    }


    @IBAction func btn(_ sender: Any) {
        savedArray.append(text.text!)
        UserDefaults.standard.set(savedArray,forKey: "arr")
    }
    
}

解决方法

尝试在UserDefaults.standard.synchronize()之后致电set。苹果不建议这样做,但有时有必要。

,

尝试使用以下内容:

UserDefaults.standard.setValue(savedArray,forKey: "arr")

代替此:

UserDefaults.standard.set(savedArray,forKey: "arr")