2015-07-24 3 views
0

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

ответ

0

Если память обслуживает ошибку, которая возвращается, если пользователь уже существует, является другой строкой, кроме общей ошибки. Вы можете попытаться совместить строку с ошибкой, а затем отобразить предупреждение, если оно соответствует или другое, если это просто ошибка (например, сама строка ошибки).

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 

}