刷新Swift 4中的用户默认值

时间:2017-12-18 13:02:43

标签: swift nsuserdefaults swift4 xcode9

是否可以在Swift4中刷新用户默认值?扫描新产品后,值会更改,并以用户默认值存储。因此,当您扫描新产品时,用户默认必须刷新。

我希望有人为我提供解决方案

3 个答案:

答案 0 :(得分:1)

使用相同的密钥设置第一次设置userdefaults。

UserDefaults.standard.set(value, forKey: key)

答案 1 :(得分:1)

作为实现它的解决方法,您可以声明一个用于从用户默认值中获取/设置值的计算属性,例如:

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"键)的布尔值,并且编辑其值也会反映到用户默认值。

答案 2 :(得分:0)

试试这个。在设置删除和同步之前。这可能会解决您的问题

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()

}