美文网首页
类的底层探究

类的底层探究

作者: 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,哦豁,是不是掉坑里了......

相关文章

  • 深挖iOS底层-类(4)

    深挖iOS底层-类底层(4) 通过LLDB探究类地址: 经过上述不同打印都可以拿到类的首地址。 继续深入探究首地址...

  • 类的底层探究

    今天我们探究一下类的底层是什么实现的? 首先我们知道object_class 继承与objc_object,两者皆...

  • iOS底层探究-类的结构分析

    前言 上篇博客说完了对象的成员博客-isa结构分析,今天我们来研究一下对象的爸爸,他就是类,相信大家都知道对象是由...

  • iOS底层 - cache原理分析

    iOS开发底层探究之路 在对Objective-C底层的探究过程中,已经探究过objc_class 结构中的isa...

  • iOS底层之类的结构分析

    从iOS底层之isa结构分析及关联类我们探究了类的实例对象的内存结构,对象指针的首地址存储了isa,也就是存储了类...

  • iOS底层 - 类的结构分析

    iOS开发底层探究之路[https://www.jianshu.com/c/d626ab4e98a2] 类的结构分...

  • OC底层5-类的探究分析(下)

    1.类的内存的ro数据 还是先上代码: 上一章节OC底层4-类的探究分析(上)[https://www.jians...

  • OC底层探究(4)-- 类的结构分析

    类的结构 老规矩,还是从源码搞起。我们先在main.m中定义一个类ZPerson,继承自NSObject。 然后通...

  • OC底层4-类的探究分析

    今天通过源码的学习对类进行分析,从isa 的走位和继承链来进行展开。我们先来看一下isa经典的流程图: isa流程...

  • 类扩展&分类关联对象底层探究

    一、分类及扩展 分类又名 Category、类别 分类中原则上只能添加方法。不能增加成员变量。 分类中可以访问原来...

网友评论

      本文标题:类的底层探究

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