【问题标题】:Converting a UITextField String to a Double inside a UITextField Action在 UITextField 操作中将 UITextField 字符串转换为 Double
【发布时间】: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)
    }

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

【问题讨论】:

    标签: ios swift uitextfield


    【解决方案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
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 2018-07-13
    • 2011-06-30
    • 1970-01-01
    相关资源
    最近更新 更多