NSHisperOfSwift
Optional
Type?的内存布局:Type类型布局+NullableFlag
SwiftObject
Swift类的默认基类,也可指定为NSObject
Swift VTable
按照声明的方法顺序都存在虚函数表中。不论是否被Override.
Swift 属性访问
会额外调用swift_accessBegin和swift_accessEnd.
didSet和willSet等会被额外编译成函数。插入到属性访问的汇编代码中。
推测是为了兼容OC中的atomic关键字
Swift消息转发
根据方法声明的位置和调用方式共同决定。
- 虚函数表
- 直接绑定
- OC消息派发
Aarry内存布局
指针+个数
class实例的内存布局
isa + 引用计数值