在 UITextField 操作中将 UITextField 字符串转换为 Double

Posted

技术标签:

【中文标题】在 UITextField 操作中将 UITextField 字符串转换为 Double【英文标题】:Converting a UITextField String to a Double inside a UITextField Action 【发布时间】:2015-11-24 18:17:05 【问题描述】:

我无法在 UITextField 属性中将 hoursWorked 转换为 double 我不断收到“无法使用类型为 '(UITextField!)' 的参数列表调用类型为 'Double' 的初始化程序”

  @IBOutlet weak var hoursWorked: UITextField!

   @IBAction func onEditingChange(sender: UITextField) 
        var hoursWorkedAmount = Double(hoursWorked)
        var salary = hoursWorkedAmount! * 25
        print(salary)
    

我尝试在操场上预先测试所有内容,以便更好地了解我做错了什么,但我不断收到错误消息。

【问题讨论】:

【参考方案1】:

您需要获取文本字段的文本,而不是文本字段本身。

变化:

var hoursWorkedAmount = Double(hoursWorked)

到:

var hoursWorkedAmount = Double(hoursWorked.text)

更好的是,将其更改为:

var hoursWorkedAmount = Double(sender.text)

这样,您的方法将作用于发送事件的实际文本字段。

注意:我的 Swift 语言并不流利。在text 之后可能需要!

【讨论】:

UITextField's text property 的类型为String?,因此您确实需要!,除非您使用可选绑定。 我认为这解决了我的问题,但它一直提到“变量 'hoursWorkedAmount' 从未发生变异;考虑更改为 'let' 常量” 然后将变量改成使用let

以上是关于在 UITextField 操作中将 UITextField 字符串转换为 Double的主要内容,如果未能解决你的问题,请参考以下文章

firstRect(for:) 在 UITextField 中返回错误值

UITextField PlaceHolder 颜色改变 Monotouch

点击 UITextField 时如何阻止键盘显示?

如何在 iOS 11 的 UITextfield 中启用拖动

UITextField 的初始键盘动画的超慢滞后/延迟

为啥从 Nib 加载的 UITextField 的默认字体太小?