在执行下一步之前等待完成

时间:2015-02-26 21:47:08

标签: swift

我的TableView加载时需要按顺序完成一些过程。我希望在执行下一行代码之前它会等到代码完成,但似乎并非如此。有没有办法在执行下一步之前让它们等到完成?

override func viewDidLoad() {
    super.viewDidLoad()

performTask1()

performTask2()

performTask3()
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

使这些方法中的每一个采用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 {

            }
        }
    }
}
相关问题