我想在创建下面的对象时将字符串值设置为对象 ID。目前它打印“无”。有任何想法吗?谢谢
var date:NSDate = currentDatePicker.date
var DOB:NSDate = DOBPicker.date
var user = PFUser.currentUser()
var report = PFObject(className:"reports")
report["name"] = nameTextField.text
report["DOB"] = DOB
report["date"] = date
report["user"] = user
report.saveInBackground()
var ojId = report.objectId
println(ojId)
最佳答案
saveInBackground
是一个异步方法,所以它不会等待。没有设置id的原因是实体还没有保存。
我认为您应该使用 saveInBackgroundWithBlock:
并在 block 中检索对象 ID 形式(在保存实体后执行):
var report = PFObject(className:"reports")
report["name"] = nameTextField.text
report["DOB"] = DOB
report["date"] = date
report["user"] = user
report.saveInBackgroundWithBlock { (success, error) -> Void in
if success {
var ojId = report.objectId
println(ojId)
}
}
或者也可能是同步执行的保存
- 但不要在主线程中使用它:
report.save()
var ojId = report.objectId
println(ojId)
关于object - 创建对象时获取对象id(Parse.com),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26931195/