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

IOs Swift:完成关闭是如何工作的,swift,swift2,closures,completion,Swift,Swift2,Closures,Completion,谁能解释一下,这个代码是怎么工作的 private func viewWillTransition(completion:(() -> Void)?) { if completion != nil { completion!() } } 这是在Swift中实现回调的基本方案 该函数接受类型为()->Void)的参数completion,意思是“一个不带参数且不返回值的可选闭包” 内部代码测试nil的closure可选值。如果它不是nil,则代码将使

谁能解释一下,这个代码是怎么工作的

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

这是在Swift中实现回调的基本方案

该函数接受类型为
()->Void)
的参数
completion
,意思是“一个不带参数且不返回值的可选闭包”

内部代码测试
nil
closure
可选值。如果它不是
nil
,则代码将使用
将其展开,并拨打电话

在Swift中实现这一点的一种更为惯用的方法是使用
if-let
construct:

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