2015-11-24 193 views
0

我一直无法将hoursWorked转换为UITextField属性中的双精度型我一直得到“无法用类型为'('')的参数列表调用初始值设定项'的UITextField!)'”将UITextField字符串转换为UITextField中的双精度操作

@IBOutlet weak var hoursWorked: UITextField! 

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

我试图测试前手都在操场得到更好的理解我在做什么错,但我不断收到错误。

回答

2

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

变化:

var hoursWorkedAmount = Double(hoursWorked) 

到:

var hoursWorkedAmount = Double(hoursWorked.text) 

更重要的是,将其更改为:

var hoursWorkedAmount = Double(sender.text) 

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

注意:我在Swift中不流利。在text之后您可能需要!

+0

[UITextField的文本属性](https://developer.apple.com/library/prerelease/tvos/documentation/UIKit/Reference/UITextField_Class/index.html#//apple_ref/occ/instp/UITextField/text)has键入'String?',所以除非使用可选绑定,否则确实需要'!'。 –

+0

我认为这解决了我的问题,但它一直提到“Variable'hoursWorkedAmount'从未发生变异;考虑更改为'let'constant” – Mohammed

+0

然后更改变量以使用'let'。 – rmaddy

相关问题