Оповещение о дублировании электронной почты Swift + Parse

Я пытаюсь сделать так, чтобы когда пользователь создает учетную запись... если его электронная почта не использовалась до появления окна предупреждения с надписью «Учетная запись создана», и если электронная почта уже создана (в 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)
        }
    }
}

person Community    schedule 24.07.2015    source источник


Ответы (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

}
person Fred Faust    schedule 24.07.2015