一尘不染

另一个功能完成后再运行

swift

我想在pullData()完成后运行loadViews(),但我想知道这样做的最佳方法是什么?我也想在其上设置10秒超时,以便在可能的情况下显示网络错误。根据我的阅读,GCD看起来是完成此任务的方法,但是我对它的实现感到困惑。谢谢你提供的所有帮助!

//1
pullData()
//2
loadViews()

阅读 194

收藏
2020-07-07

共1个答案

一尘不染

您需要的是带有完成块的完成处理程序。

创建它非常简单:

func firstTask(completion: (success: Bool) -> Void) {
    // Do something

    // Call completion, when finished, success or faliure
    completion(success: true)
}

并使用您的完成块,如下所示:

firstTask { (success) -> Void in
    if success {
       // do second task if success
       secondTask()
    }
}
2020-07-07