是否需要在转义完成块后调用返回值?

时间:2018-02-14 10:52:33

标签: ios swift

如果我有以下代码:

func getData(completion: @escaping () -> ()) {
    // Do stuff
    completion()
    print(hello)
}

当调用完成块时,函数会自动返回,还是会继续运行并且"你好"打印?

1 个答案:

答案 0 :(得分:0)

完成处理程序就像任何其他普通的关闭一样。在某些情况下,人们可能希望在completion之后运行更多代码,这就是为什么他们这样设计它们的原因。当你打电话给他们时,他们会跑。返回后,下面的代码运行。它们不能替换return语句。如果要在completion()位之后停止运行方法的其余部分,请在其中放置return

除非,否则您的完成处理程序将被声明为返回Never,在这种情况下,它将终止您的整个应用程序,或无限期运行。在这种情况下,它之后的任何代码都不会运行。 :)