首页 > 解决方案 > Swift :- 线程 1:致命错误:余数或除以零

问题描述

我正在创建一个包含除法(/)的简单计算器。我对 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."
    }

标签: iosswiftxcodeoptional

解决方案


不要使用所有的力量展开 - 它只是要求崩溃。

在执行除法之前检查 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."
    }
}

推荐阅读