当我的"textfield.text"等于 nill 或字符无效时,如何消除崩溃?



我正在为学校项目制作一个非常简单的应用程序。问题是,当我不输入文本字段上的任何内容或输入一个没有数字值的字符时,我的应用程序就会崩溃。该应用程序包括显示您的下士质量和体内脂肪Porcentaje。感谢您的时间!

@IBOutlet var textoIMC: UILabel!
@IBAction func btnIMC(_ sender: UIButton) {
    decirIMC()
}
@IBOutlet var textoPGC: UILabel!
@IBAction func btnPGC(_ sender: UIButton) {
    calcularPGC()
}
@IBOutlet var textoResumen: UILabel!
@IBAction func btnResumen(_ sender: UIButton) {
calcularPesoIdeal()
}
@IBOutlet var textoNombre: UITextField!
@IBOutlet var peso: UITextField!
@IBOutlet var estatura: UITextField!
@IBOutlet var edad: UITextField!
@IBOutlet var genero: UISegmentedControl!

@IBOutlet var textoError: UILabel!

var pesoNum = 0.0
var estaturaNum = 0.0
var edadNum = 0.0
var generoNum = 1.0
var imc = 0.0
var PGC = 0.0
var pesoIdealNum = 0.0

func pesoEstatura() {

    pesoNum = Double(peso.text!)!
    estaturaNum = Double(estatura.text!)!

}
func calcularIMC() {
    imc = (pesoNum)/(estaturaNum*estaturaNum)
}
func decirIMC() {
    pesoEstatura()
    calcularIMC()
    textoIMC.text = "(imc)"
}
func calcularPGC() {
    pesoEstatura()
    calcularIMC()
    edadNum = Double(edad.text!)!
    PGC = (1.20*imc)+(0.23*edadNum)-(10.8*generoNum)-5.4
    textoPGC.text = "(PGC)"

}
@IBAction func genero(_ sender: UISegmentedControl) {
    if sender.selectedSegmentIndex == 1 {
    generoNum = 0.0
    }else if sender.selectedSegmentIndex == 0 {
        generoNum = 1.0
    }

    }
func calcularPesoIdeal() {
    pesoEstatura()

    if generoNum == 0 {
        pesoIdealNum = (estaturaNum*100-100)-(estaturaNum*100-150)/2
         textoResumen.text = "Estimado (textoNombre.text!), nsu peso ideal seria de (pesoIdealNum) Kg."

    }else if generoNum == 1 {
        pesoIdealNum = (estaturaNum*100-100)-(estaturaNum*100-150)/4
        textoResumen.text = "Estimado (textoNombre.text!), nsu peso ideal seria de (pesoIdealNum) Kg."
    }
}
}

例如

func calcularPGC() {
    pesoEstatura()
    calcularIMC()
    if let edadText = edad.text, let edadNum = Double(edadText) {
        PGC = (1.20*imc)+(0.23*edadNum)-(10.8*generoNum)-5.4
        textoPGC.text = "(PGC)"
    } else {
        // prompt the user to enter a numeric value
    }
}

if let edadText = edad.text, edadNum = Double(edadText)检查nil,如果值是数字。

最新更新