斯威夫特:-线程1:致命错误:余数或除零

时间:2018-10-16 02:58:44

标签: ios swift xcode optional

我正在创建一个包含除法(/)的简单计算器。我对nil值或字母词有错误处理。有什么可能的方法来保护坠机事故?

线程1:致命错误:零的余数或除数

@objc func divFunc() {

    let a = Int(firstTxtField.text!)
    let b = Int(secondTxtField.text!)


    if (a != nil) && (b != nil)
    {

        resultLabel.textColor = UIColor.white
        resultLabel.text = String(a! / b!)
    }
    else
    {
        resultLabel.textColor = UIColor.red
        resultLabel.text = "Invalid No."
    }

1 个答案:

答案 0 :(得分:2)

不要使用所有强制展开的功能-它只是在请求崩溃。

执行除法之前请先检查0。

@objc func divFunc() {
    if let a = Int(firstTxtField.text ?? ""), 
       let b = Int(secondTxtField.text ?? ""), 
       b != 0 {   
        resultLabel.textColor = .white
        resultLabel.text = String(a / b)
    }
    else
    {
        resultLabel.textColor = .red
        resultLabel.text = "Invalid No."
    }
}