我希望用户能够输入一个新号码,它将被添加到当前保存在UserDefaults中的内容,然后将该组合号码保存在用户默认值中。任何人都知道如何做到这一点?谢谢!
代码:
let typeHoursInt = Double(typeHours.text!)!
let typePayInt = Double(typePay.text!)!
totalMade.text = String(typeHoursInt * typePayInt)
UserDefaults.standard.set(totalMade.text, forKey: "savedMoney")
答案 0 :(得分:3)
不要将字符串保存到userDefaults。保存数字。
然后:
从默认值中读取值。
将新值添加到新读取的值
将新金额保存回默认值。
答案 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")
}