美文网首页
Category分类

Category分类

作者: 大鹅ne | 来源:发表于2020-04-13 22:40 被阅读0次

    底层结够
    在objc-runtime-new文件里

    struct category_t {
        const char *name;
        classref_t cls;
        struct method_list_t *instanceMethods;
        struct method_list_t *classMethods;
        struct protocol_list_t *protocols;
        struct property_list_t *instanceProperties;
        // Fields below this point are not always present on disk.
        struct property_list_t *_classProperties;
    
        method_list_t *methodsForMeta(bool isMeta) {
            if (isMeta) return classMethods;
            else return instanceMethods;
        }
    
        property_list_t *propertiesForMeta(bool isMeta, struct header_info *hi);
    };
    
    

    Category的加载处理过程

    1.通过runtime加载某个类的所有Category数据
    2.把Category的所有属性,方法,协议数据,合并到一个大数组中
    后面参与编译的Category数据会在数组前面
    3.将合并后的分类数据(方法,属性,协议),插入到类的原来数据前面

    相关文章

      网友评论

          本文标题:Category分类

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