谁能解释一下,这段代码是如何工作的
private func viewWillTransition(completion:(() -> Void)?)
{
if completion != nil
{
completion!()
}
}
谁能解释一下,这段代码是如何工作的
private func viewWillTransition(completion:(() -> Void)?)
{
if completion != nil
{
completion!()
}
}
这是在 Swift中实现回调的基本方案。
该函数接受completion
type的参数() -> Void)?
,意思是“一个不带参数且不返回值的可选闭包”。
closure
里面的代码测试for的可选值nil
。如果不是nil
,代码用 解包!
,并进行调用。
在 Swift 中实现这一点的一种更惯用的方法是使用if let
构造:
private func viewWillTransition(completion:(() -> Void)?) {
if let nonEmptyCompletion = completion {
nonEmptyCompletion()
}
}