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