我正在與Parse
一起工作,我試圖存儲Parse
爲您提供的對象唯一標識。以下是幫助理解這一點的代碼。無法關閉以關閉變量
var objectID = ""
var object = PFObject(className: "class")
object["columnTitle"] = "String Data"
object.saveInBackgroundWithBlock { (success, error) -> Void in
guard error == nil else {
print("Error")
return
}
objectID = object.objectId!
}
print(objectID)
所以我想,當我跑的應用程序打印語句將打印出來的OBJECTID是Parse
給你,但事實並非如此。如果我在閉包中添加print語句,它肯定會得到我期待的值。它看起來像print語句正在運行,纔可以更改該值。任何想法如何解決這個問題?我假設使用GCD
?
所有這一切都是內部viewDidLoad()
結束時,我相信你會得到新的對象ID,當你從parse – Lamar
這就是查詢對象返回因爲'saveInBackgroundWithBlock'正在另一個線程中運行,當進程完成並且您正在'Main thread'中執行'print(objectID)'時'' –
謝謝!我怎麼能(不知道我是否正確地問)將封閉中更改的objectID信息移動到主線程,以便更新變量? –