问题描述
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")