Поток 1: фатальная ошибка: остаток или деление на ноль
У меня проблема, когда я запускаю свой проект, я получаю сбой:
Поток 1: фатальная ошибка: остаток или деление на ноль)
Что это значит? И каково решение?
Это мой код:
let answer: String = data.ans // This variable called from SQLite database
answer.replacingOccurrences(of: " ", with: "") // Delete spaces between words
let lenghtOfChar = answer as NSString
// char count
let width: Int = Int(view.frame.size.width) - 40
// frame width
var targetWidth: Int = (width - (lenghtOfChar.length - 1) * 5) / lenghtOfChar.length //Here's the crash !!!!!!!!!
В чем проблема в моем коде?
1 ответ
Вам нужно остановить операцию, если длина равна 0
let lenghtOfChar = (answer as NSString).length
guard lenghtOfChar != 0 else { return }
let width: Int = Int(view.frame.size.width) - 40
var targetWidth: Int = (width - (lenghtOfChar- 1) * 5)/lenghtOfChar
В качестве альтернативы, вы можете просто установить ширину в 0, когда ваша длина равна 0. Ниже приведен пример, который делает это с помощью оператора Turnery:
let lenghtOfChar = answer as NSString
let width: Int = Int(view.frame.size.width) - 40
var targetWidth: Int = lenghtOfChar.length == 0 ? 0 : (width - (lenghtOfChar.length - 1) * 5)/lenghtOfChar.length