
objc_object

objc_class

isa指针

cahce_t 方法查找


class_data_bits_t

class_rw_t

class_ro_t

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

Type Encodings

runtime基础数据结构

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

消息传递
子类->父类->根类

消息传递:
void objc_msgSend(void /id self SEL op .../)
void objc_msgSendSuper(void /id super SEL op .../)

缓存查找:
采用哈希查找的方法获取,通过给定值的SEL,目标值是对应的bucket_t中的imp(采用这种方法是为了解决效率的问题)
当前类中的查找
1.对于已经排序好的列表,使用二分查找的算法查找
2.对于没排序好的,按照顺序查找
父类逐级查找

消息转发:

动态添加方法
performSelector:
动态方法解析
1.动态运行时语言将函数决议推迟到运行时
2.编译室语言在编译期进行函数决议
网友评论