块是否也像完成处理程序一样使用回调功能? (Swift/IOS)

Does blocks also use call back functiality as the complition handler does? (Swift/IOS)

questions与这个相似,我了解到,使用回调函数的完成处理程序,块只是匿名函数或闭包

block and completion handler

的例子
class func scheduledTimer(withTimeInterval interval: TimeInterval, 
                  repeats: Bool, 
                    block: @escaping (Timer) -> Void) -> Timer


func startUpdates(from start: Date, 
      withHandler handler: @escaping CMPedometerHandler)

问题1

我注意到另一个区别是完成处理程序具有类型的类型别名,这是否适用于所有 ios 框架设计?

typealias CMPedometerHandler = (CMPedometerData?, Error?) -> Void

问题2

积木也有回调函数吗?块也有转义关键字,这意味着闭包将在外部函数返回后调用,这对我来说听起来很"call back"。

问题3

如果问题 2 的答案是肯定的,那么重新发明轮子的原因是什么,为什么不把它们都称为块或完成处理程序

你说的是实际上意思相同的术语。所以你的3个问题不能单独回答。

完成处理程序回调都是(转义)闭包的同义词——是 方块 .
的 Swift 名称 @escaping 表示在封闭函数 returns 之后调用闭包。

A typealias 只是一个方便的标识符,用于用更简单的左侧替换更复杂的右侧。它与闭包没有直接关系。