是否可以在Swift4中刷新用户默认值?扫描新产品后,值会更改,并以用户默认值存储。因此,当您扫描新产品时,用户默认必须刷新。
我希望有人能为我找到解决方案
在您使用相同的键第一次设置时设置userdefaults。
UserDefaults.standard.set(value, forKey: key)
作为实现它的解决方法,您可以声明一个用于从用户默认值获取/设置值的计算属性,例如:
var flag: Bool {
get {
let value = UserDefaults.standard.bool(forKey: "flag_key")
return value
}
set {
UserDefaults.standard.set(newValue, forKey: "flag_key")
UserDefaults.standard.synchronize()
}
}
读取flag
的值将返回用户默认值(“flag_key”键)的布尔值,并且编辑其值也会反映到用户默认值。
试试这个吧。在设置删除和同步之前。这可能会解决您的问题
func setValueToDefaults(key:String, value:AnyObject){
self.removeKeyValueFromDefaults(Key:key)
UserDefaults.standard.set(value, forKey: key)
}
func getValueFromDefaults(key:String) ->AnyObject?{
if((UserDefaults.standard.value(forKey: key)) != nil){
let value:AnyObject = UserDefaults.standard.value(forKey: key)! as AnyObject
return value
}else{
return nil
}
}
func removeKeyValueFromDefaults(Key:String){
let defaults = UserDefaults.standard
defaults.removeObject(forKey: Key)
defaults.synchronize()
}