objc_object

objc_class

isa指针


cache_t
- 用于快速查找方法执行函数
- 是可增量扩展的哈希表结构
- 是局部性原理的最佳应用

class_data_bits_t
- class_data_bits_t主要是对class_rw_t的封装
- class_rw_t代表了类的读写信息、对class_ro_t的封装
- class_ro_t代表了类的只读信息
class_rw_t

class_ro_t

method_t

Type Encodings

总体结构

对象、类对象、元类对象
- 类对象存储实例方法列表等信息
- 元类对象存储类方法列表等信息

消息传递
obj_msgSend(xxx)
obj_msgSendSuper(xxx)
缓存查找
例: 给定SEL, 目标是对应bucket_t中的IMP:
cache_key_t 通过f(key)得到bucket_t
- 对于已排序列表,采用二分算法查找对应执行函数
- 对于未排序列表,采用一般遍历查找对应执行函数
**父类逐级查找
消息转发

动态方法解析
@dynamic
- 动态运行时语言将函数决议推迟到运行时
- 编译时语言在编译期间进行函数决议