首先,让我说这不是一篇抱怨,我只是想了解 register(defaults: [])
方法是如何工作的。
我正在使用 UserDefaults 的 register(defaults: [])
方法,在 didFinishLaunchingWithOptions
方法中注册我所有 UseDefault 键的默认值,一切都按预期正常工作。
我的问题是,为什么在每次调用 didFinishLaunchingWithOptions
方法时,register(defaults: [])
方法中的值不会重置?
我不想让它们重置,我只是想了解为什么。
我有以下代码...
func application(...didFinishLaunchingWithOptions...) -> Bool {
UserDefaults.standard.register(defaults: [
keyUserName:"",
keyHasCar:false
])
}
这是我为什么感到困惑的原因:当应用程序运行时,它会按预期保存默认值,然后如果稍后在应用程序的某个位置修改了这些值并立即杀死并重新启动应用程序,didFinishLaunchingWithOptions
会再次被调用,但这些值不会被重置。但是,如果我向数组中添加一个新键,则会保存该键,但是其他键不会被重置,只有新键以其默认值添加。
再次强调,我不希望这些值被重置,我只需要理解register
方法的工作方式。