Почему я не могу вызвать функцию UIAlert, используя guard - PullRequest
0 голосов
/ 02 июля 2019

Функция оповещения не вызывается, но ошибок нет

@objc func handleSignUp(){

   guard let email = emailTextField.text else {
        let alertemail = UIAlertController(title: "Error!", message: "Please enter a valid email address!", preferredStyle: UIAlertController.Style.alert)
        let actionemail = UIAlertAction(title: "OK", style: .default) { (actionemail) in
            alertemail.dismiss(animated: true, completion: nil)
        }
        alertemail.addAction(actionemail)
        self.present(alertemail, animated: true, completion: nil)
        return
    }
    guard let password = passwordTextField.text else {
        let alertpassword = UIAlertController(title: "Error!", message: "Please enter a valid password!", preferredStyle: UIAlertController.Style.alert)
        let actionpassword = UIAlertAction(title: "OK", style: .default) { (actionpassword) in
            alertpassword.dismiss(animated: true, completion: nil)
        }
        alertpassword.addAction(actionpassword)
        return
    }

    createUser(withEmail: email, password: password)
}

1 Ответ

0 голосов
/ 02 июля 2019

Свойство text объекта UITextField (в отличие от UILabel) никогда не равно nil. По умолчанию это строка @ "" .

Вы можете добавить проверку, если строка пуста

guard let email = emailTextField.text, !email.isEmpty else { ...

Однако вы должны проверитьадрес электронной почты

...