2014-10-28 20 views
1

我想编写一个BMI计算器转换 - 展开一个可选值

@IBOutlet var height: UITextField! 
@IBOutlet var weight: UITextField!  
@IBOutlet var message: UILabel!  
@IBAction func keyPressed(sender: AnyObject) { 

    var peso = Double(weight.text.toInt()!) 
    var altura = Double(height.text.toInt()!) //ERROR LINE 
    var alturaquad = Double(peso) * Double(peso) //EXPONENTIAL 
    var imc = altura/alturaquad 
    message.text = "Your BMI is \(imc)" 
} 

我得到了下面的错误,我还不明白:

fatal error: unexpectedly found nil while unwrapping an Optional value 

我的第二个问题是关于指数函数。它是战斗吗?

回答

2

toInt()方法String返回一个可选整数,即一个有效整数,如果从字符串到int的转换成功,或者如果转换失败则返回nil

这里:

height.text.toInt()! 

你使用强制展开运营,其解开从可选的整数,使得假设它是不是nil - 如果可选实际上是nil,你有错误。

可选项,强制解包和像你这样的错误是堆栈溢出的反复问题。我建议你仔细阅读Optionals。它在概念上很简单,但很多头痛的源头 - 全面了解它们的工作方式对于任何快速开发人员都是至关重要的。提示:使用可选绑定来解决您的问题。

至于你的第二个问题,关于pow:你试过吗?创建一个操场并对其进行测试 - 然后问一个新问题,如果它不起作用。

相关问题