刷新Swift 4中的用户默认值
是否可以在Swift4中刷新用户默认值?扫描新产品后,这些值会更改,并存储在用户默认值中。因此,当你扫描一个新产品时,用户默认值必须刷新刷新Swift 4中的用户默认值,swift,nsuserdefaults,swift4,xcode9,Swift,Nsuserdefaults,Swift4,Xcode9,是否可以在Swift4中刷新用户默认值?扫描新产品后,这些值会更改,并存储在用户默认值中。因此,当你扫描一个新产品时,用户默认值必须刷新 我希望有人能为我提供一个解决方案设置用户默认值,就像您第一次使用相同的键设置一样 UserDefaults.standard.set(value, forKey: key) 设置userdefaults,就像第一次使用相同的键设置一样 UserDefaults.standard.set(value, forKey: key) 试试这个。在设置之前,请删除并
我希望有人能为我提供一个解决方案设置用户默认值,就像您第一次使用相同的键设置一样
UserDefaults.standard.set(value, forKey: key)
设置userdefaults,就像第一次使用相同的键设置一样
UserDefaults.standard.set(value, forKey: 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()
}
试试这个。在设置之前,请删除并同步它。这可能会解决您的问题
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()
}
作为一种解决方法,您可以声明一个计算属性,用于从用户默认值获取/设置值,例如:
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_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()
}
}
读取
标志的值
将从用户默认值(即“标志键”键)返回布尔值,编辑其值也将反映到用户默认值。是,您可以覆盖UserDefaults中的值。如果您重新为要覆盖的键指定值,则可以覆盖该值。UserDefaults.standard.set(value,forKey:key)@Scriptable我怎么做?我扫描产品时需要这样做。然后这些值必须更改,您只需重新设置它,就像您第一次设置它一样。@Scriptable里面有类似缓存的东西吗?因为有时值在我关闭应用程序后会更改,有时不会刷新。是的,您可以覆盖UserDefaultsif中的值,如果您为密钥重新分配值,它将覆盖。UserDefaults.standard.set(value,forKey:key)@Scriptable我怎么做?我扫描产品时需要这样做。然后这些值必须更改,您只需重新设置它,就像您第一次设置它一样。@Scriptable里面有类似缓存的东西吗?因为有时候在我关闭应用程序后,值会发生变化,有时候它不会刷新。