Swift 等待完成,然后执行下一步

Swift 等待完成,然后执行下一步,swift,Swift,我有几个过程需要在加载TableView时按顺序完成。我希望它会等到代码完成后再执行下一行代码,但情况似乎并非如此。在执行下一步之前,是否有办法让这些操作等待完成 override func viewDidLoad() { super.viewDidLoad() performTask1() performTask2() performTask3() } 谢谢你的帮助 使这些方法中的每一个都采用completionHandler参数的典型示例,例如: func perform1(

我有几个过程需要在加载TableView时按顺序完成。我希望它会等到代码完成后再执行下一行代码,但情况似乎并非如此。在执行下一步之前,是否有办法让这些操作等待完成

override func viewDidLoad() {
    super.viewDidLoad()

performTask1()

performTask2()

performTask3()
}

谢谢你的帮助

使这些方法中的每一个都采用
completionHandler
参数的典型示例,例如:

func perform1(completionHandler: () -> Void) {
    doSomethingAsynchronously() {
        completionHandler()
    }
}

func perform2(completionHandler: () -> Void) {
    doSomethingElseAsynchronously() {
        completionHandler()
    }
}

func perform3(completionHandler: () -> Void) {
    doSomethingCompletelyDifferentAsynchronously() {
        completionHandler()
    }
}
然后您可以这样运行它们:

override func viewDidLoad() {
    super.viewDidLoad()

    perform1 {
        self.perform2 {
            self.perform3 {

            }
        }
    }
}

它确实会等待,除非这些任务中的任何一个分派要在后台执行的代码块,否则您是否正在执行类似的操作?是的,有一种方法可以做到这一点(通过阻塞主线程)。但是不,你不想那样做。只要在流程完成后重新加载/显示您的表视图就行了。是的,我正在进行“FindObjectInBackground”分析。因此,如果它是背景中的某个内容,它将启动该功能,然后将其返回到原始功能?每个过程都相互依赖。我想我可以在上一个流程的末尾启动下一个流程,但这对我来说似乎并不干净。谢谢大家的帮助。我将努力创建完成处理程序。谢谢,@Rob。这看起来很有趣,我已经尝试过测试它,但是在Xcode 7.3,Swift 2.2中,我得到了错误
“传递给不带参数的调用的参数”
。有没有关于如何解决这个问题的建议?错误图像:@user4806509-您的
doSomethingAsynchronously
doSomethingElseAsynchronously
,以及
dosomethingcomplelydifferentitysynchronously
方法没有完成处理程序。为他们提供异步任务完成时调用的完成处理程序闭包(就像您为
perform1
perform2
perform3
所做的那样)。瞧,非常感谢,罗伯。