Objective-C class_rw_t class_ro_t

apple objc开源代码

class_rw_t

rw: readwrite

在objc-runtim-new.h 文件中 源码如下:

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;

    ...
};

class_rw_t 中包括

method_array_t 方法数组

property_array_t 属性数组

protocol_array_t 代理数组

class_ro_t

class_ro_t

ro: readonly

在objc-runtim-new.h 文件中 源码如下:

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;
    }
};

class_ro_t 中包括

name 类名

method_list_t 方法列表 

property_list_t 属性列表

protocol_list_t 代理列表

ivar_list_t 成员变量列表

class_rw_t

rw readwrite 内部信息可读可写的

内部包含的信息来源时runtime时动态添加的,比如分类中的方法会在运行时添加到method_array_t中

class_ro_t

ro readonly 内部信息只读

内部为类编译器生成的信息,不可添加和删除

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值