gpt4 book ai didi

ios - 如何将 userDefault 乘以一个数字?

转载 作者:行者123 更新时间:2023-11-28 20:49:33 25 4
gpt4 key购买 nike

我怎样才能将用户默认值乘以一个数字

当我尝试将我的用户默认值乘以我的 FeesVC 中的一个数字时,我的应用程序崩溃了

将小计传递给 subtotalLbl(单独使用时)效果非常好,但如果我在尝试计算 salesTaxLbl 和 overallTotalLbl 时尝试用 UserDefault 乘以任何数字,应用程序就会崩溃

class FooterCell: UITableViewCell {

@IBOutlet weak var cartTotal: UILabel!
@IBOutlet weak var totalInfoBtn: UIButton!

@IBAction func additionalFeesOnClicked(_ sender: Any) {
UserDefaults.standard.set(cartTotal.text, forKey: "PASS_DATA")
}
}

class FeesViewController: UIViewController {

@IBOutlet weak var subtotalLbl: UILabel!
@IBOutlet weak var salesTaxLbl: UILabel!
@IBOutlet weak var overallTotalLbl: UILabel!

override func viewDidLoad() {
super.viewDidLoad()

// passes data into FeesVC Fine
let subtotal = UserDefaults.standard.object(forKey: "PASS_DATA")

// app crashed when trying to multiply the user default by a number
let tax = Float(subtotal)! * Float(0.0825)
let total = Float(subtotal)! + Float(tax)

subtotalLbl.text = "\(subtotal!)"
salesTaxLbl.text = "\(Tax)"
overallTotalLbl.text = "\(total)"

}

@IBAction func returnButton(_ sender: Any) {
dismiss(animated: true, completion: nil)
print("Close Taxes and Fees")
}
}

最佳答案

像这样处理 UserDefaults 中的值时,用自定义的 getset 将它们包装起来通常会很有帮助变量,以便您可以像访问普通变量一样访问它们。

var subTotal: Float {
get {
return UserDefaults.standard.float(forKey: "PASS_DATA")
}
set {
UserDefaults.standard.set(newValue, forKey: "PASS_DATA")
}
}

这将为您提供一个像普通 Float 一样执行的变量,因此您可以对其进行操作而不必担心实现细节。

现在,您可以做到这一点和一切Just Works (tm)。

let tax = subtotal * Float(0.0825)

已更新以显示此操作。

遇到断点时,我在底部控制台的右侧运行 po UserDefaults.standard.float(forKey: "PASS_DATA") 命令。这允许您查询值。

当没有为 PASS_DATA 设置值时,您将获得默认值 0.0,如下所示:

enter image description here

但是,如果已经设置了一个值,那么您将看到它,就像我在打印它之前设置 5.0 的地方看到的那样。

enter image description here

关于ios - 如何将 userDefault 乘以一个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59291630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com