也许这个问题非常基本,但我正在寻找一种减少价值的好方法。我有一个名为" 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)
}
}
答案 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))