Дубликат электронной почты 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

}
Другие вопросы по тегам