Swift3之前:
默认@escaping,逃逸闭包,是不安全的。
对于非逃逸闭包,你需要标记@noescaping
Swift3及之后
默认是@noescaping,非逃逸的,默认是安全的:
对于逃逸闭包,它需要被@escaping显示地标记出来.
一.区别
具体什么区别呢?先举例说明。
1 声明testBlock
typealias testBlock = (_ type: Int, _ contextObject: Any) -> Void
2 noescaping
func testBlock1(block:testBlock) {
block(0,"hello");
}
3 escaping
func testBlock2(block:@escaping testBlock) {
DispatchQueue.global(