swift – 了解UserDefaults寄存器方法
首先,让我说这不是抱怨,我只是想了解寄存器(默认值:[])方法是如何工作的.
我在didFinishLaunchingWithOptions方法中使用UserDefaults寄存器(默认值:[])方法来注册我所有UseDefault键的默认值,一切正常,正常工作. 我的问题是,为什么每次调用didFinishLaunchingWithOptions方法时寄存器中的值(默认值:[])方法都不会重置? 我不希望他们休息我只是想了解原因. 我有以下代码…… func application(...didFinishLaunchingWithOptions...) -> Bool { UserDefaults.standard.register(defaults: [ keyUserName:"",keyHasCar:false ]) } 这就是为什么我的困惑,当应用程序运行时,它会按预期保存默认值,然后,如果值在应用程序的某个地方稍后被修改,并且在应用程序被杀死并重新启动之后,将再次调用didFinishLaunchingWithOptions但值不要重置,但如果我向数组添加一个新密钥,它会被保存,但其余的密钥不会被重置只有新的密钥添加其默认值. 同样,我不想重置值,我只需要了解寄存器方法是如何工作的. 解决方法
从注册文档(默认值:):
这意味着注册的默认值将作为您正在使用的正常用户默认值的后备.注册的默认值不会覆盖或替换标准用户默认值. 当您尝试从UserDefaults.standard查找密钥时,如果密钥不在那里,则会在注册的默认值中查找它,并返回结果(如果有). 在UserDefaults.standard中设置值后,当然是为键返回的值.如果从UserDefaults.standard中删除密钥,则会再次使用已注册的默认值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |