美文网首页
2022-11-16 05RunTime相关

2022-11-16 05RunTime相关

作者: TsingQue | 来源:发表于2022-11-17 00:51 被阅读0次
    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相关

          本文链接:https://www.haomeiwen.com/subject/hvhexdtx.html