import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
getData { (data) in
print("闭包结果返回--\(data)--\(Thread.current)")
}
}
func getData(closure:@escaping (Any) -> Void) {
print("函数开始执行--\(Thread.current)")
DispatchQueue.global().async {
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now()+2, execute: {
print("执行了闭包---\(Thread.current)")
closure("345")
})
}
print("函数执行结束---\(Thread.current)")
}
}
getData 方法是一个闭包函数。如果想在getData函数生命周期结束之后调用 closure,需要添加 @escaping。
不加就会有报错
Escaping closure captures non-escaping parameter 'result'