如何添加到当前存储在用户默认值Swift 4中的数字

时间:2018-03-08 18:58:35

标签: swift userdefaults

我希望用户能够输入一个新号码,它将被添加到当前保存在UserDefaults中的内容,然后将该组合号码保存在用户默认值中。任何人都知道如何做到这一点?谢谢!

代码:

    let typeHoursInt = Double(typeHours.text!)!
    let typePayInt = Double(typePay.text!)!
    totalMade.text = String(typeHoursInt * typePayInt)

    UserDefaults.standard.set(totalMade.text, forKey: "savedMoney")

3 个答案:

答案 0 :(得分:3)

不要将字符串保存到userDefaults。保存数字。

然后:

  1. 从默认值中读取值。

  2. 将新值添加到新读取的值

  3. 将新金额保存回默认值。

答案 1 :(得分:0)

这就是你要求的。您应该将totalMade变量存储为User Defaults作为Double,而不是String。见下文:

// your original code
let typeHoursInt = Double(typeHours.text!)!
let typePayInt = Double(typePay.text!)!

let total = typeHoursInt * typePayInt

totalMade.text = String(total)

// saving original value in User Defaults
UserDefaults.standard.set(total, forKey: "savedMoney")

// retrieving value from user defaults
var savedMoney = UserDefaults.standard.double(forKey: "savedMoney")

// adding to the retrieved value
savedMoney = savedMoney + 5.0

// resaving to User Defaults
UserDefaults.standard.set(savedMoney, forKey: "savedMoney")

答案 2 :(得分:-1)

在您下方找到" 8" " 20" ,它们是 typeHours的替代品.text typePay.text

  UserDefaults.standard.set(535, forKey: "savedMoney")

  if let typeHoursInt = Int("8"), let typePayInt = Int("20") {
    let totalMade = typeHoursInt * typePayInt
    let newTotal = UserDefaults.standard.integer(forKey: "savedMoney") + totalMade
    UserDefaults.standard.set(newTotal, forKey: "savedMoney")
  }