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 + 引用计数值