美文网首页
Objective-C底层数据结构

Objective-C底层数据结构

作者: Silence_xl | 来源:发表于2021-07-16 11:11 被阅读0次
struct _category_t {
    const char *name; //类名
    struct _class_t *cls;
    const struct _method_list_t *instance_methods; //对象方法列表
    const struct _method_list_t *class_methods; //实例方法列表
    const struct _protocol_list_t *protocols;  //协议列表
    const struct _prop_list_t *properties;  //属性列表
};
image.png
struct objc_class : objc_object {
    // Class ISA;
    Class superclass;
    cache_t cache;             // 方法缓存
    class_data_bits_t bits;    // 用于获取类的具体信息

    class_rw_t *data() { 
        return bits.data();
    }
};
struct class_rw_t {
    // Be warned that Symbolication knows the layout of this structure.
    uint32_t flags;
    uint32_t version;

    const class_ro_t *ro;

    method_array_t methods;    //方法列表
    property_array_t properties; //属性列表
    protocol_array_t protocols;   //协议列表

    Class firstSubclass;
    Class nextSiblingClass;

    char *demangledName;
};
struct class_ro_t {
    uint32_t flags;
    uint32_t instanceStart;
    uint32_t instanceSize;
#ifdef __LP64__
    uint32_t reserved;
#endif

    const uint8_t * ivarLayout;
    
    const char * name;   //类名
    method_list_t * baseMethodList;
    protocol_list_t * baseProtocols;
    const ivar_list_t * ivars;    //成员变量列表

    const uint8_t * weakIvarLayout;
    property_list_t *baseProperties;

    method_list_t *baseMethods() const {
        return baseMethodList;
    }
};
image.png

相关文章

  • Objective-C的底层实现(类与对象)

    概述 对象 Objective-C中,类和对象的底层数据结构,可以参考Objective-C底层数据结构。其中对象...

  • Objective-C底层数据结构

    Objective-C底层数据结构 类的数据结构 Class(指针) Method(指针) Ivar(指针) Ca...

  • Tips:OC对象的本质

    1、Objective-C的面向对象都是基于什么数据结构实现的? 我们平时编写的Objective-C代码,底层实...

  • OC 底层知识(一):OC的本质

    1、Objective-C的面向对象都是基于什么数据结构实现的?由于我们平时编写的Objective-C代码,底层...

  • OC对象的本质

    一、OC对象的底层实现 Objective-C 底层是由C/C++的数据结构实现的。一个NSObject类对应C中...

  • iOS | 底层原理分析 (一)

    一. OC对象本质 1.1 OC对象数据结构 我们平时编写的Objective-C代码,底层实现其实都是C\C++...

  • OC对象

    OC的本质 oc代码,底层是由c/c++实现 Objective-C的面向对象都是基于C\C++的数据结构实现的 ...

  • Objective-C 对象的本质 01 - 底层实现

    Objective-C 对象的本质 01 - 底层实现 我们平时编写的 Objective-C 代码,底层实现为 ...

  • iOS 面试汇总 - OC语法

    Objective-C的本质 OC代码底层都是C\C++代码 OC的面向对象都是基于C\C++的数据结构实现的 O...

  • OC对象的本质

    平时编写的Objective-C代码,底层转换成C\C++代码,所以OC的面向对象都是基于C\C++的数据结构实现...

网友评论

      本文标题:Objective-C底层数据结构

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