gpt4 book ai didi

swift - 如何在使用 Parse 和 swift 保存数据后立即获取 objectId

转载 作者:搜寻专家 更新时间:2023-10-31 08:23:49 25 4
gpt4 key购买 nike

    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

关于swift - 如何在使用 Parse 和 swift 保存数据后立即获取 objectId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28181253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com