Userdefaults 不会加载或保存
Posted
技术标签:
【中文标题】Userdefaults 不会加载或保存【英文标题】:Userdefaults doesn't load or save 【发布时间】:2020-09-13 16:25:38 【问题描述】: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")
【问题讨论】:
如果您快速关闭应用程序,我相信它有时可能无法在您的模拟器上运行。这是因为在模拟器上,ios 的默认方法(用于保存状态)的调用方式不同。在设备上就可以了。 【参考方案1】:尝试在set
之后调用UserDefaults.standard.synchronize()
。 Apple 不推荐这样做,但有时是必要的。
【讨论】:
以上是关于Userdefaults 不会加载或保存的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UserDefaults 中重置“AppleLanguages”键的值
UserDefaults 不会在应用程序关闭并重新打开后保存数据