我一直在努力学习Swift中的完成处理程序,但似乎无法找到我的问题的答案。如果我有多个完成处理程序,它们是否必须在专属位置?例如,我可以使用代码:
func example(x:Int, completionHandler: @escaping (_ success: Bool) -> ()){
if x > 5 {
completionHandler(true)
}
completionHandler(false)
}
或者我是否必须将completionHandler(false)
括在else语句中(例如,完成处理程序是否必须在彼此的独占位置)?如果是这样,有人可以解释上述情况将如何发挥作用?我理解完成处理程序的方式为"返回值"在函数中的所有代码完成执行之后。那么上面的场景会有2个不同的"返回值"?
另外,如果我没有包含第二个completionHandler和x = 4
,会发生什么?这会如何影响调用此函数的代码?
提前谢谢!