我的TableView加载时需要按顺序完成一些过程。我希望在执行下一行代码之前它会等到代码完成,但似乎并非如此。有没有办法在执行下一步之前让它们等到完成?
override func viewDidLoad() {
super.viewDidLoad()
performTask1()
performTask2()
performTask3()
}
感谢您的帮助!
答案 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 {
}
}
}
}