2017-12-18 16 views
-1

Swift4でユーザーのデフォルト値を更新することはできますか?値は、新しい製品をスキャンした後に変更され、ユーザーのデフォルト値に格納されます。したがって、新しい製品をスキャンすると、ユーザーのデフォルト値が更新される必要があります。Swift 4でユーザーデフォルトを更新する

私はあなたが同じキーで最初の時間を設定していると誰かが私

+1

はい、上書きするキーの値を再割り当てすると、UserDefaults – Scriptable

+0

の値を上書きできます。 UserDefaults.standard.set(value、forKey:key) – adarshaU

+0

@Scriptableどうすればいいですか?私は製品をスキャンしたときにそれを行う必要があります。次に値を – bartvdb

答えて

0

セットuserdefaultsのためのソリューションを持っている願っています。

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

これを試してみてください。 it.thisはあなたの問題、それを達成するための回避策として

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

} 
0

を解決する可能性があります削除し、同期設定する前に、あなたはユーザデフォルトから値を設定/取得するために計算されたプロパティを宣言することができ、例:

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"キー)からブール値が返され、その値を編集することもユーザーのデフォルト値に反映されます。

関連する問題