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