Swift: - поток 1: фатальная ошибка: остаток или деление на ноль - PullRequest
0 голосов
/ 16 октября 2018

Я создаю простой калькулятор, включающий метод деления (/).У меня есть обработка ошибок для нулевого значения или буквенных слов.Есть ли какой-нибудь возможный способ защитить аварию?

Поток 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 голосов
/ 16 октября 2018

Не используйте всю эту распаковку сил - это просто запрос сбоя.

Проверьте на 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."
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...