2022-11-16 05RunTime相关

image.png

objc_object

image.png

objc_class

image.png

isa指针

image.png

cahce_t 方法查找

image.png
image.png

class_data_bits_t

image.png

class_rw_t

image.png

class_ro_t

image.png

method_t

函数四要素:名称,返回值,参数,函数体


image.png

Type Encodings

image.png

runtime基础数据结构

image.png

对象,类对象,元类对象

1.类对象存储实例方法列表等信息
2.元类对象存储类方法列表等信息

image.png

消息传递

子类->父类->根类


image.png

消息传递:

void objc_msgSend(void /id self SEL op .../)
void objc_msgSendSuper(void /id super SEL op .../)

image.png

缓存查找:

采用哈希查找的方法获取,通过给定值的SEL,目标值是对应的bucket_t中的imp(采用这种方法是为了解决效率的问题)

当前类中的查找

1.对于已经排序好的列表,使用二分查找的算法查找
2.对于没排序好的,按照顺序查找

父类逐级查找

image.png

消息转发:

image.png

动态添加方法

performSelector:

动态方法解析
1.动态运行时语言将函数决议推迟到运行时
2.编译室语言在编译期进行函数决议

你可能感兴趣的:(2022-11-16 05RunTime相关)