OC对象的分类

前言: OC中的对象可以分为3类: instance(实例)对象、 class(类)对象、 meta-class(元类)对象

一、instance(实例)对象

     instance对象就是通过类alloc出来的对象,每次调用alloc都会产生新的instance对象。

  • instance 对象在内存中存储的信息包括:
    1、isa 指针
    2、 其他成员变量
instance对象.png

二、Class(类)对象

  • 实例对象决定成员变量的值,类对象决定成员变量(类型,名称)
  • 一个类的类对象,在内存中有且只有一个class对象
  • class对象在内存中存储的信息主要包括
    1、isa指针
    2、superClass指针
    3、类的属性信息(@property)、类的对象方法信息(instance method)
    4、类的协议信息(protocol)、类的成员变量信息(ivar)
类对象存储信息.png

三、meta-class(元类)对象

  • 每个类在内存中有且只有一个meta-class对象(元类)
  • meta-class对象和class对象的内存结构是一样的,当时用途不一样
  • 在内存中存储的信息主要包括:
    1、isa指针
    2、superclass指针
    3、类的类方法信息(class method)
元类对象存储信息.png
OC对象的区别.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。