解析Swift - 注册用户,登录他们,将他们添加到角色

时间:2015-07-26 07:33:17

标签: ios swift parse-platform

当我使用以下代码时,我尝试注册用户,将其登录,然后将其添加到角色。任何人都可以帮助解决为什么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")
        }
    }
}

0 个答案:

没有答案
相关问题