美文网首页
OC对象的分类

OC对象的分类

作者: Mr_Shaozj | 来源:发表于2020-11-14 19:13 被阅读0次

1. instance (实例对象)

  • instance对象就是通过类alloc出来的对象,每次调用alloc都会产生新的instance对象。
  • instance对象在内存中存储的信息包括
    • isa指针
    • 其他成员变量的值

2. 类对象 (在内存中只有一份)

NSObject * object = [[NSObject alloc] init];
Class cls1 = [object class];
Class cls2 = [NSObject class];
Class cls3 = object_getClass(object);//runtime api
  • 类对象在内存中存储的信息主要包括:
    • isa指针
    • superclass指针
    • 类的属性信息(@property)、类的对象方法、类的协议信息、类的成员变量信息(字面量 和类型)(ivar)

3. 元类对象 (Meta-class)每个类在内存中有且只有一个meta-class对象

//获取元类对象,需要将类对象作为参数传入
Class metaClass = [object_getClass([NSObject class])];
  • Meta-class对象和class对象的内存结构是一样的,但是用途不一样。
    主要包含以下信息:
    • isa指针
    • superclass指针
    • 类的类方法信息

相关文章

网友评论

      本文标题:OC对象的分类

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