@ Мэтт прав.Если текст в ikinciLabel не является Int, приложение вылетает.Вы говорите, что он падает, используя оператор принудительного развертывания:!.
В общем
Вы должны разматывать вещи только тогда, когда вы абсолютно уверены, что вещь, которую вы хотите развернуть, не ноль.Во всех других случаях вы должны if-let или guard-let опционального, использовать оператор слияния nil (??) (или другие способы развернуть опциональные значения) и обработать nil-case.
В вашем случае
Если вы хотите, чтобы пользователь мог вводить числа с плавающей запятой, используя запятую или точку, вы можете просто заменить каждую запятую на точкувот так:
let enteredTextWithoutComma = textField.text?.replacingOccurrences(of: ",", with: ".")
Эта новая константа является необязательной.Чтобы безопасно сделать из него Дабл, сделайте:
guard let enteredTextWithoutCommaUnwraped = enteredTextWithoutComma,
let enteredNumber = Double(enteredTextWithoutCommaUnwraped) else {
// one of the two actions didn't work. Maybe the entered phrase was not a number
// do something
return
}
// here you can use the variable enteredNumber. It is now a Double (not an Optional)
...