У меня есть логика для входа пользователя с экрана входа в систему.Если вход в систему не удается, я хочу показать сообщение, чтобы пользователь знал.Если пользователь входит в систему успешно, я запускаю переход.Когда я проверяю его с неверными учетными данными, предупреждение об ошибке отображается, как и ожидалось, но переход по-прежнему запускается, даже если он вложен в оператор if-else.Почему это?Как я могу выйти из него и избежать блока else ...?Я попытался добавить 'return' под кодом оповещения DispatchQ / show, но это не имело никакого эффекта.
self.login(username: usernameTextField.text!, password: passwordTextField.text!) { (error) in
if error != nil {
DispatchQueue.main.async {
self.showAlert(msg: error ?? "error")
}
} else {
DispatchQueue.main.async {
// segue code
}
}
}
login:
func login(username: String, password: String, completionHandler: @escaping (_ error: String?) -> ()) {
SessionHelper.shared.logUserIn(withUsername: username, andPassword: password) { (error) in
if let err = error {
completionHandler(err)
}
completionHandler(nil)
}
}