关于iOS闭包使用的一些问题
iOS闭包
在Swift中闭包分为逃逸闭包和非逃逸闭包,Swfit3以后闭包默认为非逃逸闭包,逃逸闭包需采用@escaping进行标记
@escaping逃逸闭包,简单点讲就是函数执行完成后才会被调用,比如:
func testModel(test: @escaping () -> Void){
DispatchQueue.global().async {
test()
}
}
闭包在一个异步队列中被调用,这种情况下就属于逃逸闭包。
使用上述函数如下:
myTest.testModel {
print("测试闭包")
}
闭包也可以通过typealias进行类型定义,这样使用起来更易于阅读,比如:
typealias TestBlock = () -> Void
func testModel(test: @escaping TestBlock){
DispatchQueue.global().async {
test()
}
}