美文网首页
类的底层探究

类的底层探究

作者: MrHardy | 来源:发表于2021-06-21 16:17 被阅读0次

    今天我们探究一下类的底层是什么实现的?

    首先我们知道object_class 继承与objc_object,两者皆是底层代码

    上代码

    下面我们探究一下成员变量(基本数据类型)/属性/实例变量 的底层实现是什么样的?

    通过指令clang -rewrite-objc main.m -o main.cpp  生成cpp文件

    内存平移

    接下来再看下面属性定义的区别

    注意看上述结果 不同定义 是否有set方法字样

     atomic, copy, mutableCopy等都用到reallySetProperty方法

    其他扩展:

    isa里面的存储的是 类的信息、是否在释放、引用计数、weak

    对象isa和类不一样

    类isa和元类一样

    看下isKindOfClass的底层实现

    tcls 为当前的根元类,根元类的父类为NSObject

    上面的代码真的是走了isKindOfClass 吗?

    现在设为为汇编模式,揭开真相

    实际走的是objc_opt_isKindOfClass,哦豁,是不是掉坑里了......

    相关文章

      网友评论

          本文标题:类的底层探究

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