我想在下面创建对象时将字符串值设置为对象id。目前它打印" nil"。有任何想法吗?感谢
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)
答案 0 :(得分:10)
saveInBackground
是一种异步方法,所以它不会等待。没有设置id的原因是因为实体尚未保存。
我认为您应该使用saveInBackgroundWithBlock:
并在块中检索对象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)
}
}
或者也可能save
,它是同步执行的 - 但不使用主线程中的那些:
report.save()
var ojId = report.objectId
println(ojId)