Block 与 Closure
OC 的 Block 与 Swift 的 Closure
相互转化
-
Closure 转 Block
1let closure: (String) -> Void = { str in 2 3} 4let block = closure as @convention(block) (String) -> Void 5let blockObject = unsafeBitCast(block, to: AnyObject.self)
-
Block 转 Closure
1typealias closureType = @convention(block) (String) -> Void 2// OC_block 为 OC 定义的 block 3let closure = unsafeBitCast(OC_block as AnyObject, to: closureType.self)