2016-10-13 3 views
0

Will ich einen Anmelde-Controller mit Swift und Parse zu programmieren. das Zeichen up hat eine Überprüfung, ob Benutzername oder E-Mail in Parse-Client genommen werdenHandhabung von PFErrorCode auf swift

let query = PFQuery(className:"_User") 
     query.whereKey("email", equalTo: email) 
     query.findObjectsInBackground { (succeeded, error) -> Void in 
     newUser.signUpInBackground{(success, error) -> Void in 

      // The find succeeded. 
      print("Successfully retrieved scores.") 


      if success { 
       // Do something with the found objects 


       let alertMessage = UIAlertController(title: "Register complated", message: "You've been registered.", preferredStyle: UIAlertControllerStyle.alert) 
       let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.default, handler: nil) 

        alertMessage.addAction(okAction) 
        self.present(alertMessage, animated: true, completion: nil) 



      } 

       // Log details of the failure 
       // username is exists 
      else { 

       if PFErrorCode.errorUsernameTaken.rawValue == 202 { 

        print ("Username is exists") 
       } 

       else if PFErrorCode.errorUserEmailTaken.rawValue == 203 { 
        print ("E-mail is exists") 


       } 

      } 

Als ich versuchte, eine bestehende E-Mail oder Passwort, um die Ausgabe in der Konsole die print() die gleichen nicht zeigen, zu schreiben was ich wollte.

Antwort

0

liegt daran, dass Sie nicht den Fehlercode, sondern eine feste Zahl mit verschiedenen PFErrorCodes vergleichen.

/// Your code 
if let error = error, error._code == PFErrorCode.errorUsernameTaken.rawValue { 
    print ("Username is exists") 
} else if let error = error, error._code == PFErrorCode.errorUserEmailTaken.rawValue { 
    print ("E-mail is exists") 
} 

Auch E-Mail ist einzigartig in Parse so sollten Sie getFirstObjectInBackground statt findObjectsInBackground mit in Betracht ziehen. Und verwenden Sie PFUser.query() anstelle von _PFQuery (Klassenname: "User").

+0

Hey nts, ich habe die Erweiterung innerhalb der Aktion Schaltfläche kopiert, und dort ein Fehler Pop im Compiler. – user2508528

+0

Fügen Sie die Erweiterung in eine andere Datei (z. B. PFErrorCode + Equatable) – nathan

+0

Hey nts, habe ich versucht, Erweiterung, die Sie geschrieben haben, und ich habe drei Fehlermeldung. Könnten Sie genauer sagen, wo sollte ich die Erweiterung wo platzieren? – user2508528