IOs Swift : 完成关闭是如何工作的

IOs Swift : How does completion closure work

任何人都可以解释一下,这段代码是如何工作的

private func viewWillTransition(completion:(() -> Void)?)
{
    if completion != nil
    {
        completion!()
    }
}

这是在Swift.

中实现回调的基本方案

该函数接受 () -> Void)? 类型的参数 completion,意思是 "an optional closure taking no parameters and not returning a value."

里面的代码针对nil测试了closure的可选值。如果它不是 nil,代码将用 ! 解包并调用。

在 Swift 中实现这一点的更惯用的方法是使用 if let 构造:

private func viewWillTransition(completion:(() -> Void)?) {
    if let nonEmptyCompletion = completion  {
        nonEmptyCompletion()
    }
}