如何在使用 Parse 和 swift 保存数据后立即获取 objectId
How to get objectId immediately after save data with Parse and swift
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 完成后获取您的 objectID,您必须将获取 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
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 完成后获取您的 objectID,您必须将获取 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