美文网首页
Objective-C对象分类

Objective-C对象分类

作者: lieon | 来源:发表于2021-02-03 10:41 被阅读0次

    OC对象分为以下三种

    • instance对象(实例对象)
    • class对象(类对象)
    • meta-class对象(元类对象)

    instance对象

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

    • instance对象在内存中存储的信息包括
      • isa指针
      • 成员变量


        image.png

    class对象

    NSObject *object1 = [[NSObject alloc]init];
    NSObject *object2 = [[NSObject alloc]init];
    Class objectClass1 = [object1 class];
    Class objectClass2 = [object2 class];
    Class objectClass3 = [NSObject class];
    Class objectClass4 = object_getClass(object1);
    Class objectClass5 = object_getClass(object2);
    
    • ojectClass1 ~ objectClass5都是NSObject的class对象
    • 它们都是同一个对象。每个类在内存中有且只有一个class对象
    • class对象在内存中存储的信息主要包括
      • isa指针
      • superclass指针
      • 类的属性信息(@property)
      • 类的对象方法信息(instance method)
      • 类的协议信息(protocol)
      • 类的成员变量信息(ivar)


        image.png

    meta-class

      Class objectMetaClass = object_getClass([NSObject class])
    
    • objectMetaClass是NSObject的meta-class对象(元类对象)
    • 每个类在内存中有且只有一个meta-class对象
    • meta-class在内存中存储的信息主要包括
      • isa指针
      • superclass指针
      • 类的类方法信息
    image.png

    相关文章

      网友评论

          本文标题:Objective-C对象分类

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