id -> Any
completion:(dispatch_block_t)completion -> completion: @escaping () -> Void//没有参数也没有返回值的闭包,@escaping表示闭包可能会在返回值后调用,比如异步操作
@objc
将 Swift 中的特性(类、协议、属性、方法等)暴露给 Objective-C 使用
让 Swift 中的某个类、协议、方法等被 Objective-C 使用
带来一些限制,比如使得方法或属性的类型不能是非 Objective-C 兼容的类型
初始化问题
如果你类的属性,及不在声明时初始化,也没有设置默认值,也不是可选类型就必须在init时赋值
如果是可选类型就可以不赋值,但是默认都是nil