作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
谁能解释一下,这段代码是如何工作的
private func viewWillTransition(completion:(() -> Void)?)
{
if completion != nil
{
completion!()
}
}
最佳答案
这是在 Swift 中实现回调的基本方案。
该函数采用 () -> Void)?
类型的参数 completion
,意思是“一个不带参数且不返回值的可选闭包。”
里面的代码测试了closure
的可选值是否为nil
。如果它不是 nil
,代码将用 !
解包,然后调用。
在 Swift 中实现这一点的更惯用的方法是使用 if let
构造:
private func viewWillTransition(completion:(() -> Void)?) {
if let nonEmptyCompletion = completion {
nonEmptyCompletion()
}
}
关于swift - IO swift : How does completion closure work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39635890/
我是一名优秀的程序员,十分优秀!