我正在尝试查询一类具有要删除的特定 ID 的对象。但是,当我运行它时,我收到错误“此查询具有出色的网络连接。您必须等到它完成”。我认为这是因为我试图在访问对象时删除它。
我在闭包中提供了删除代码,因为我假设闭包语句仅在函数调用完成后执行,但它仍然给我错误。我也尝试过使用 DispatchGroups,因为它看起来确实是一个并发问题,但我还不太熟悉它们的用法。这是我的代码:
let idList = [...] // Some list of ID's I would like to remove
let query = PFQuery(className: "Pictures")
for id in idList {
query.getObjectInBackground(withId: id) { (object: PFObject?, error:
Error?) in
if error == nil {
img?.deleteInBackground() { (success, error: Error?) ...
}
}
我希望从 Parse 后端删除与原始 IdList 中的 ID 关联的每个对象。然而, getObjectInbackground() 和 deleteInBackground() 似乎发生冲突。如果有人可以提供一些建议,那就太好了!
最佳答案
你可以试试
var idList = [...]
func delete(_ id:Int) {
query.getObjectInBackground(withId: id) { (object: PFObject?, error: Error?) in
if error == nil {
img?.deleteInBackground() { (success, error: Error?) ...
}
idList = Array(idList.dropFirst())
if !idList.isEmpty {
delete(idList.first!)
}
}
}
最初这样调用它
delete(idList.first!)
关于ios - 在另一个执行完毕后运行 Parse 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56977484/