一个接一个地运行一个函数完成

Ope*_*pei 10 ios swift

我试图在pullData()完成后运行loadViews(),我想知道这样做的最佳方法是什么?我想在它上面设置10秒超时,如果可能的话我可以显示网络错误.从我所看到的,GCD看起来是实现这一目标的方式,但我对它的实现感到困惑.谢谢你提供的所有帮助!

//1
pullData()
//2
loadViews()
Run Code Online (Sandbox Code Playgroud)

Dej*_*dar 21

你需要的是一个带有完成块的完成处理程序.

创建一个非常简单:

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

    // Call completion, when finished, success or faliure
    completion(success: true)
}
Run Code Online (Sandbox Code Playgroud)

并像这样使用你的完成块:

firstTask { (success) -> Void in
    if success {
       // do second task if success
       secondTask()
    }
}
Run Code Online (Sandbox Code Playgroud)