У меня возникли трудности с захватом ошибки регистрации Cognito. Я пытаюсь предупредить пользователя, когда Cognito возвращает сообщение «UsernameExistsException», «сообщение»: «Пользователь уже существует». Ошибка. Ниже мой код:AWS Cognito: попытка оповестить пользователя об ошибке
self.pool!.signUp(usernameTextField.text!, password: passwordTextField.text!, userAttributes: attributes, validationData: nil).continue(successBlock: { (task:AWSTask!) in
// needs to be async so we can ALWAYS return nil for AWSTask
DispatchQueue.main.async {
if task.error != nil { // some sort of error
let myerror = task.error
print("\(myerror)")
let alert = UIAlertController(title: "Sign Up Error", message: (task.error?.localizedDescription)! as String, preferredStyle: UIAlertControllerStyle.alert)
alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.default, handler: nil))
self.present(alert, animated: true, completion: nil)
}
else {
let response: AWSCognitoIdentityUserPoolSignUpResponse = task.result! as AWSCognitoIdentityUserPoolSignUpResponse
// NSLog("AWSCognitoIdentityUserPoolSignUpResponse: \(response)")
self.user = response.user
let alert = UIAlertController(title: "Sign Up Successful", message: "", preferredStyle: UIAlertControllerStyle.alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default, handler: { action in self.performSegue(withIdentifier: "confrimationSegue", sender: self) }))
self.present(alert, animated: true, completion: nil)
}
}
return nil
})
По некоторым причинам я не смог пробиться в task.error = ноль условный оператор!. Когда я заставляю ошибку, ошибка не печатается, и действие предупреждения не отображается в представлении. Я пытаюсь предупредить пользователя о неправильной функции? Как еще я могу проверить, что имя пользователя уже существует, представленное cognito. Заранее спасибо.