Я пытаюсь создать простое приложение в Xcode, которое будет вычислять цифры Pi до определенной цифры (то есть сотой цифры) и показывать время, необходимое для этого. Первый шаг, с которым я сталкиваюсь, заключается в том, что я хочу иметь TextField, который принимает только целочисленное значение, и когда это условие будет выполнено, тогда кнопка «запустить» программу будет разрешена для нажатия. Для всех других условий, я хотел бы, чтобы была выдана ошибка: «Для продолжения необходимо ввести целочисленное значение». но мне трудно понять, почему это так.
Я последовал совету из этой нити , но постоянно получаю сообщение об ошибке: «Поток 1: Неустранимая ошибка: неожиданно обнаружен ноль при неявном развертывании необязательного значения» со всеми указанными параметрами.
Единственное, что я получил для компиляции, было предложение @Naishta, которое все остальные дали мне ту ошибку, о которой я упоминал ранее. Вот мой код, который я могу компилировать:
@IBOutlet weak var FirstBox: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
//FirstBox.delegate = self
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
guard let _ = Int(string) else {
button.isEnabled = false
enum MyError: Error {
case runtimeError(String)
}
return false
}
button.isEnabled = true
return true
}
и переход, который я использую для перехода на следующую страницу, является просто стандартным:
@IBAction func StartCalc(_ sender: Any) {
self.performSegue(withIdentifier: "CalcSegue", sender: self)
}
Я ожидаю увидеть, что когда что-то, кроме целого числа, написано, что кнопка не может перейти на следующую страницу, и для этого выдается ошибка.