如何在使用 Parse 和 swift 保存数据后立即获取 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 完成后获取对象 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

相关内容

  • 没有找到相关文章

最新更新