如何检查用户是否使用解析升级?

时间:2015-04-06 22:33:56

标签: ios swift login parameters parse-platform

我的应用有登录和注册。用户登录后,可以选择升级帐户。升级帐户后,将创建一个名为“Upgrade”的新解析类。这里有一堆带有存储信息的子类。然后,一旦用户升级,它就会将他带到一个只有升级用户才能访问的特殊页面。但是,如果用户升级,我如何检查登录,如果是,则自动将他带到特殊页面。

在我的解析中,我将用户信息与子类“Username”和“Password”一起存储。然后在一个单独的类中,我有升级信息存储,子类为“Address”,“Phone Number”,我有一个链接器链接回创建它的用户。

我目前的登录代码是:

@IBAction func loginButton(sender:AnyObject) {
var username = self.usernameTextField.text
var password = self.passwordTextField.text

if(password.utfCount <5) {
var alert = UIAlertView(title:"Invalid", message: "Password must be greater than 5", delegate: self, cancelButtonTitle:"OK")
}
else {
PFUser.logInWithUsernameInBackground(username, password: password, block:{(user, error) -> Void in

if ((user != nil) {
self.performSegueWithIdentifier("LoginSegue", sender: nil)

这是基本代码,但不会检查用户是否已升级。

我试过了:

if(PFUser.currentUser() == PFQuery(className:"Upgrade")) { 
self.performSegueWithIdentifier("UpgradedSegue")

但是,由于目前的用户不等于那个级别,所以这并没有起作用。 我可以用什么类型的代码检查用户是否在解析中创建了升级类?

  • 我试过搞乱fetchinbackground代码和enter code here objectinbackground,但我似乎无法使这些工作。

1 个答案:

答案 0 :(得分:0)

我不太了解Swift,很抱歉,如果有错误,请尝试以下方法:

var query = PFQuery(className:"Upgrade")
query.whereKey("user", equalTo:currentUser.objectId)
query.getFirstObjectInBackgroundWithBlock {
  (object: PFObject!, error: NSError!) -> Void in
  if error != nil
    println("The getFirstObject request failed.")
  } else if object == nil{
    //No Upgrade object with that user's ID
  } else {
    // The find succeeded, user has created an Upgrade object
    println("Successfully retrieved the object.")
  }
}

您还可以设置代码以将指针存储到用户的Upgrade对象,而不是相反。您可以在用户上设置bool值以查看它们是否已升级。如果是,则将它们带到升级屏幕,或者首先获取升级对象。