如何使用iOS Swift减少Parse云中的值?

时间:2016-01-26 11:17:11

标签: ios swift parse-platform

也许这个问题非常基本,但我正在寻找一种减少价值的好方法。我有一个名为" credit"在_User表中。默认值为0.我想减少此列中的一个信用。这就是我到目前为止所做的:

            //Decrement user credit
            let query2 = PFQuery(className:"_User")
            query2.whereKey("user", equalTo: PFUser.currentUser()!)
            query2.getFirstObjectInBackgroundWithBlock {
                (object: PFObject?, error: NSError?) -> Void in
                if error != nil
                {
                    PFUser.currentUser()!["credit"] = (PFUser.currentUser()!["credit"] as! Int) - 1
                    self.navigationController?.popViewControllerAnimated(true)
                }
            }

2 个答案:

答案 0 :(得分:1)

为了递减和增加特定字段,Parse有一些内置方法:

  • object.incrementKey("key")
  • object.incrementKey("key", byAmount: 2) // any int amount
  • object.decrementKey("key")
  • object.decrementKey("key", byAmount: 2) // any int amount

因此,在该查询中获取用户对象后,您的代码将变为:

PFUser.currentUser().incrementKey("credit")
PFUser.currentUser().saveInBackgroundWithBlock {
  (success: Bool, error: NSError?) -> Void in
  if (success) {
    // The credit key has been incremented
  } else {
    // There was a problem, check error.description
  }
}

请参阅计数器上的解析文档here

答案 1 :(得分:1)

object.decrementKey("key", byAmount: myIntValue)
已从Parse SDK方法中删除(至少在iOS上)。该文档不再是最新的。

现在可以通过使用负值递增来递减,如下所示:

object.incrementKey("key", byAmount: NSNumber(value: -1 * myIntValue))