美文网首页
iOS大师班笔记

iOS大师班笔记

作者: 半边枫叶 | 来源:发表于2019-12-22 12:13 被阅读0次

四、类的本质

联合体的互斥

isa的结构为联合体+位域的结构,以达到直接操作二进制位的目的,节约了内存。如果使用属性的话,会浪费好多内存。
union(联合体)特性:属性是互斥的,所有属性的地址都是联合体的首地址。联合体的大小等于属性中最大的那个属性的大小。适合变量大小差不多,并且不会同时用到的情况;
联合体可以方便的实现位操作。有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便。
联合体+结构体(位域)的方法可以更加方便的操作二进制位。
所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表示。
struct(结构体)特性:所有的变量是共存的。struct的内存空间分配是粗放的,不管用不用,全分配。

类和元类的创建时间: 编译期创建。

验证方法:
1.在main方法中或者load方法中使用lldb打印类和元类的指针;
2、build后生成可执行文件,使用MachOView查看可执行文件内容,可以找到对应的类信息。

class类型

真正类型是objc_class类型(struct),objc_class又继承自objc-object(isa);

NSObject和objc_object区别:NSObject oc对象基类,objc_object(结构体)底层c语言的基类。

作业:类的结构分析。

相关文章

  • iOS大师班笔记

    四、类的本质 联合体的互斥 isa的结构为联合体+位域的结构,以达到直接操作二进制位的目的,节约了内存。如果使用属...

  • 网易 iOS 极客班学习笔记

    iOS 实战开发课程笔记 本贴旨在作为对极客班 《iOS 开发实战》第五期期课程视频重新学习的笔记。目标是建立一个...

  • 《故事写作大师班》笔记

    不同的故事形式,会采用不同的方式来表现人的转变: ·神话故事呈现的角色转变弧线(characterarc)通常最宽...

  • 《iOS动画》读书笔记·内容层动画

    《iOS动画》读书笔记·前序《iOS动画》读书笔记·显示层动画《iOS动画》读书笔记·内容层动画《iOS动画》读书...

  • 《iOS动画》读书笔记·显示层动画

    《iOS动画》读书笔记·前序《iOS动画》读书笔记·显示层动画《iOS动画》读书笔记·内容层动画《iOS动画》读书...

  • 《iOS动画》读书笔记·前序

    《iOS动画》读书笔记·前序《iOS动画》读书笔记·显示层动画《iOS动画》读书笔记·内容层动画《iOS动画》读书...

  • 《iOS动画》读书笔记·转场动画

    《iOS动画》读书笔记·前序《iOS动画》读书笔记·显示层动画《iOS动画》读书笔记·内容层动画《iOS动画》读书...

  • 【Objective-c】_蓝牙开发

    ios蓝牙开发学习笔记(一)蓝牙概述 ios蓝牙开发学习笔记(二)central角色的实现 ios蓝牙开发学习笔记...

  • 兼容iOS 10 资料整理笔记

    兼容iOS 10 资料整理笔记 兼容iOS 10 资料整理笔记

  • 《故事写作大师班》笔记2

    不同的原型在故事中的优点及可能的弱点: >> 国王/父亲优点:以智慧、远见和决心领导人民或家庭,使他们得以成功和成...

网友评论

      本文标题:iOS大师班笔记

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