检查xcode

问题描述

所以我最近尝试在xcode中创建一个非常简单的求和器,当没有数字时,当我按下计算按钮时,我遇到的问题是出现应用崩溃,当我在其中放置没有数字的任何内容并按计算按钮时,它也崩溃,并且我知道它崩溃导致无法转换无/非数字成双,但如何检查文本字段中的数字,如果是则将显示为 等式,如果没有数字,它将将文本字段设置为空 (faktor1.text =“”)(faktor2.text =“”) ...

现在看起来像这样(ränkaut表示计算)

nice

这是我使用的代码

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var faktor1: UITextField!
@IBOutlet weak var faktor2: UITextField!
@IBOutlet weak var result: UILabel!
@IBOutlet weak var calculatebutton: UIButton!
@IBOutlet weak var clearui: UIButton!


override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    result.text = ""
    calculatebutton.layer.cornerRadius = 25.0
    result.layer.cornerRadius = 25.0
    clearui.layer.cornerRadius = 25.0
}

@IBAction func calculate( sender: Any) {

    let input1 = Double(faktor1.text!)!
    let input2 = Double(faktor2.text!)!

    let calculation = input1 * input2
    result.text = "(calculation)"
}

@IBAction func clearfnc( sender: Any) {
    result.text = ""
    faktor1.text = ""
    faktor2.text = ""
}

}

解决方法

您可以简单地以Swift方式解开可选项,而无需使用!(强制解开)

这是使用guard的示例:

@IBAction func calculate(sender: Any) {
    guard
        let input1String = faktor1.text,let input2String = faktor1.text,let input1 = Double(input1String),let input2 = Double(input2String)
    else {
        faktor1.text = ""
        faktor1.text = ""
        return
    }

    let calculation = input1 * input2
    result.text = "\(calculation)"
}