var cardObject = PFObject(className: "YourCard")
cardObject["cardNumber"] = cardNumber
cardObject["balance"] = balance
cardObject["expire"] = date
cardObject["validFlg"] = cardStatus
cardObject.saveInBackgroundWithBlock {
(success: Bool!, error: NSError!) -> Void in
if (success != nil) {
NSLog("Object created with id: (cardObject.objectId)")
} else {
NSLog("%@", error)
}
}
dbId = cardObject.objectId
我无法获取 objectId,如何获取它?提前非常感谢你。
正如你的函数名称已经说过的那样,它是一个称为异步的函数。这意味着主线程不会等待函数完成。所以你会得到一个(仍然)空的objectId。
要在 saveInBackground 完成后获取对象 ID,您必须将获取 ID 的行放入 if 子句中。
var cardObject = PFObject(className: "YourCard")
cardObject["cardNumber"] = cardNumber
cardObject["balance"] = balance
cardObject["expire"] = date
cardObject["validFlg"] = cardStatus
cardObject.saveInBackgroundWithBlock {
(success: Bool!, error: NSError!) -> Void in
if (success != nil) {
NSLog("Object created with id: (cardObject.objectId)")
//Gets called if save was done properly
dbId = cardObject.objectId
} else {
NSLog("%@", error)
}
}
另一种选择是在主线程中调用save()
。这样,函数在调用 objectId 之前完成。Parse 不建议这样做,但这是一种可能性:
cardObject.save()
dbId = cardObject.objectId