当我使用以下代码时,我尝试注册用户,将其登录,然后将其添加到角色。任何人都可以帮助解决为什么PFUser.CurrentUser()似乎每次都返回一个nil值,因此不会让我添加一个角色?
@IBAction func trySignUp(sender: AnyObject) {
if (txtStoreNumber.text != "" && txtEmail.text != "" && txtUsername.text != "" && txtPassword.text != "" && selectWorkLevel.selectedSegmentIndex != -1){
let user = PFUser()
user.username = txtUsername.text
user.password = txtPassword.text
user.email = txtEmail.text
// Other non-standard fields...
user["Store"] = txtStoreNumber.text
user["Forename"] = txtForename.text
user["Surname"] = txtSurname.text
user.signUpInBackgroundWithBlock({ (success, error) -> Void in
if (error == nil){
self.showSucccess("Success: User Created")
// Login the user
PFUser.logInWithUsernameInBackground(self.txtUsername.text, password: self.txtPassword.text) {
(user: PFUser?, error: NSError?) -> Void in
if user != nil {
// Put the user in to a role
var roleName = ""
switch self.selectWorkLevel.selectedSegmentIndex{
case 0:
roleName = "StoreManager"
case 1:
roleName = "DeputyManager"
case 2:
roleName = "TeamLeader"
default:
roleName = "Other"
}
var queryRole = PFRole.query()
queryRole!.whereKey("name", equalTo: roleName)
queryRole!.getFirstObjectInBackgroundWithBlock({ (roleObject, error) -> Void in
if error == nil {
var roleToAddUser = roleObject as! PFRole
roleToAddUser.users.addObject(PFUser.currentUser()!)
roleToAddUser.saveInBackgroundWithBlock({ (success, error) -> Void in
if (error == nil){
self.showSucccess("Success: User Created")
}else{
// Provide Validation and Error Message
self.showError("Error \(error!.code): " + error!.localizedDescription)
}
})
}else{
// Provide Validation and Error Message
self.showError("Error \(error!.code): " + error!.localizedDescription)
}
})
} else {
// Provide Validation and Error Message
self.showError("Error \(error!.code): " + error!.localizedDescription)
}
}
}else{
// Provide Validation and Error Message
self.showError("Error \(error!.code): " + error!.localizedDescription)
}
})
}else{
if (selectWorkLevel.selectedSegmentIndex != -1){
self.showError("Error: Fields Incomplete")
}else{
self.showError("Error: Select a Work Level")
}
}
}