Дубликат электронной почты Alert Swift + Parse
Я пытаюсь сделать так, когда пользователь создает учетную запись... если его электронная почта не использовалась до того, как появится окно оповещения с надписью "Учетная запись создана", и если электронная почта уже создана (при разборе), тогда появляется предупреждение должно появиться уведомление пользователя.
Кажется, я не могу заставить мой код выполнять оба действия... только отображать одно сообщение. Что я здесь не так делаю?
Спасибо!
func createNewUser() {
let newUser = PFUser()
newUser.email = emailSignUp.text
newUser.username = emailSignUp.text
newUser.password = passwordSignUp.text
newUser.signUpInBackgroundWithBlock { ( success: Bool, error: NSError?) -> Void in
if newUser.username != nil {
let alert: UIAlertController = UIAlertController(title: "Account created", message: "Please confirm your email", preferredStyle: .Alert)
let okButton = UIAlertAction(title: "OK", style: .Default) { action -> Void in
}
alert.addAction(okButton)
self.presentViewController(alert, animated: true, completion: nil)
}
else {
let alert: UIAlertController = UIAlertController(title: "Email already registered", message: "Please enter a different email", preferredStyle: .Alert)
let okButton = UIAlertAction(title: "OK", style: .Default, handler: nil)
alert.addAction(okButton)
self.presentViewController(alert, animated: true, completion: nil)
}
}
}
1 ответ
Если память обслуживает ошибку, которая возвращается, если пользователь уже существует, это строка, отличная от общей ошибки. Вы можете попытаться сопоставить строку ошибки и затем отобразить предупреждение, если оно совпадает, или другое, если это просто ошибка (например, сама строка ошибки).
newUser.signUpInBackgroundWithBlock { ( success: Bool, error: NSError?) -> Void in
if error != nil {
if let errorString = error.userInfo?[“error”] as? String {
if errorString == “username \(emailSignUp.text) already taken” {
// Create alert that address is taken
} else {
// Create other case alert, though it may make sense to just display the error string in an alert box
}
}
} else {
// Do your usual stuff
}