swift中所有值类型:struct、enum使用直接派发。
swift中协议的extensions(扩展)使用直接派发,初始声明函数使用函数表派发
swift中class中extensions使用直接派发,初始化声明函数使用函数表派发,dynamic修饰的函数使用消息派发。
swift中NSObject的子类用@nonobjc或final修饰的函数使用直接派发,初始声明函数使用函数表派发,dynamic修饰的extensions使用消息派发
swift(关键字)显示指定派发方式
1)添加final关键字的函数使用直接派发
2)添加static关键字函数使用直接派发
3)添加dynamic关键字函数使用消息派发
4)添加@objc关键字的函数使用消息派发
5)添加@inline关键字的函数告诉编译器可以使用直接派发