ios - 在另一个执行完毕后运行 Parse 代码

标签 ios swift xcode parse-platform concurrency

我正在尝试查询一类具有要删除的特定 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/

相关文章:

ios - 如何在 Xcode 的 UI 测试类目标中包含 SwiftyUserDefaults.swift?

ios - 无法使用 UIImage 或 NSData 加载图像

iphone - Xcode:WAITING NSURLConnetcion 下载内容

ios - 默认语言在 iOS 应用程序中不起作用

ios - iOS Xcode Instruments 中的红色电话和蓝色电话是什么意思?

swift - 为 AnyObject 类型转换以表示任何引用类型的实例

ios - 将自定义 (Retina) 图像添加到 UIBarButtonItem

ios - 甚至无法在Mac OSX 10.4上仅从iPhone SDK安装xcode

iOS 今日扩展 : can this be dynamically enabled and disabled from within my app?

android - 强制 HTML5 应用程序处于横向模式