美文网首页
Class 窥探

Class 窥探

作者: 取个名字真困难 | 来源:发表于2018-11-08 19:55 被阅读0次

    内部结构图

    image

    class_rw_t 里面的methods、properties、protocols是二维数组,是可读可写的,包含了类的初始内容、分类的内容

    image

    class_ro_t 里面的baseMethodList、baseProtocols、ivars、baseProperties是一维数组,是只读的,包含了类的初始内容

    image

    method_t是对方法/函数的封装

    struct_method_t  {
    
        SEL name; //函数名字
    
       const char *types;//(返回值,参数类型)
    
       IMP imp;//函数入口地址
    
    }
    

    Class内部结构中有个方法缓存(cache_t),用散列表(哈希表)来缓存曾经调用过的方法,可以提高方法的查找速度

    struct_cache_t  {
    
       struct bucket_t *_buckets; //哈希表
    
       mask_t _mask; 
    
       mast_t _occipied
    
    }
    
    struct bucket_t {
    
       cache_key_t  _key; //SEL
    
       IMP imp; //函数地址
    
      }
    

    相关文章

      网友评论

          本文标题:Class 窥探

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