gpt4 book ai didi

ios - Swift:如何将 UITextField 可选字符串解包为 Float

转载 作者:可可西里 更新时间:2023-11-01 01:07:21 26 4
gpt4 key购买 nike

我正在制作一个应用程序,特别是小费计算器,以练习我的 Swift 技能。目前使用 Swift 5。

我已经设置了布局、标签、文本字段等。但是我遇到的一个问题是用户在文本字段框中输入的可选字符串。我正在尝试将用户输入(字符串?)与 slider 值相乘,它是一个 float 。

我已经尝试了几种方法,强制解包、保护语句、if let 和类型转换,但我得到的所有东西都是类似的,Xcode 不允许我将两种类型混合在一起。我还将文本字段输入到一个可选的 Float(Float?),但 Xcode 仍然希望我找到一种方法将这两种类型放在一起。

我的文本框输入框是一个变量闭包。

private let priceTextField: UITextField = {
let textField = UITextField()
textField.placeholder = "$00.00"
textField.textColor = UIColor.black
textField.font = UIFont.init(name: "HelveticaNeue-Thin", size: 60)
textField.keyboardType = UIKeyboardType.numberPad
textField.textAlignment = .center
textField.borderStyle = UITextField.BorderStyle.roundedRect
textField.borderStyle = UITextField.BorderStyle.none
textField.sizeToFit()
textField.translatesAutoresizingMaskIntoConstraints = false
return textField
}()

这是我的 slider 操作函数,它将计算小费金额。

@objc func sliderChange() {
totalTipAmount.text = (tipSlider.value) * Float(priceTextField.text! as NSString)
myTipTextView.text = "My Tip (\(Int(tipSlider.value.rounded()))%):"
}

最佳答案

您的计算似乎没问题,但如果将 Float 代替 String 设置为 totalTipAmount,它可能会引发编译器错误。你可以尝试如下,

@objc func sliderChange() {
guard let priceText = self.priceTextField.text, let price = Float(priceText) else { return }
totalTipAmount.text = "\(tipSlider.value * price)"
}

关于ios - Swift:如何将 UITextField 可选字符串解包为 Float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55780246/

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