美文网首页
类对象和实例对象

类对象和实例对象

作者: 坚持_d49e | 来源:发表于2020-05-12 13:54 被阅读0次

import <objc/runtime.h>

实例对象:
NSObject *obj = [[NSObject alloc]init]; obj 就是实例对象

类对象:
Class class1 = [obj class];
Class class2 = [NSObject class];//class方法 无论调用多少次 返回的始终是NSObject的class对象
Class class3 = object_getClass(obj);//这个方法如果传的是实例,那返回的就是实例的class对象,如果传的是class对象,那返回的就是元类对象
Class metaClass = object_getClass(class3) //这个 是元类对象
这些都是类对象

类对象(class对象)在内存中存储的信息主要有:
struct objc_class {
Class _Nonnull isa OBJC_ISA_AVAILABILITY;

if !OBJC2

Class _Nullable super_class                              OBJC2_UNAVAILABLE;
const char * _Nonnull name                               OBJC2_UNAVAILABLE;
long version                                             OBJC2_UNAVAILABLE;
long info                                                OBJC2_UNAVAILABLE;
long instance_size                                       OBJC2_UNAVAILABLE;
struct objc_ivar_list * _Nullable ivars                  OBJC2_UNAVAILABLE;
struct objc_method_list * _Nullable * _Nullable methodLists                    OBJC2_UNAVAILABLE;
struct objc_cache * _Nonnull cache                       OBJC2_UNAVAILABLE;
struct objc_protocol_list * _Nullable protocols          OBJC2_UNAVAILABLE;

endif

} OBJC2_UNAVAILABLE;
/* Use Class instead of struct objc_class * */
1、isa指针
2、superclass指针
3、类的属性(@property)、类的对象方法(instance method)
4、类的协议信息(protocol),类的成员变量(ivar)

元类对象包含:
1、isa指针
2、superclass指针
3、类的类方法

相关文章

  • python语法入门五

    类和对象 类和对象 基础 继承:python为多继承 类、类对象和实例对象 当实例对象声明后,再删除类对象,那么该...

  • 1.14类代码编写基础

    一、类对象和实例对象 在python对象模型中,类和通过类产生的实例是两种不同的对象类型: 类类是实例工厂。类的属...

  • 类,类对象和实例对象

    Python 的类定义写完之后就成了一个类对象,而引用这个类对象的就是实例对象。 类中定义的属性和方法都是静态属性...

  • 类对象和实例对象

    实例对象: NSObject *obj = [[NSObject alloc]init]; obj 就是实例对象,...

  • 类对象和实例对象

    import 实例对象:NSObject *obj = [[NSObject a...

  • Java的Class对象

    1. Class对象和实例对象 实例对象是类的实例,基于某个类 new 出来的对象Class对象是JVM生成用来保...

  • Python-类对象和实例对象的区别

    Python语言中类对象和实例对象是存在区别的,从类对象和实例对象的数据属性来看比较清晰。 类对象:Class o...

  • iOS-对象、isa指针、SuperClass

    OC中对象分类 分为三类:实例对象、类对象、元类对象 instance对象(实例对象) class对象(类对象) ...

  • 面向对象两三事

    实例和类的区别 类:a. 变量: 所有实例共享b. 对象: 属性引用类.对象、实例化 对象=类()c. 绑定属性:...

  • Java 基础

    类和对象 对象:对象是类的一个实例,有状态和行为。 创建对象:声明,new 实例化,调用构造方法初始化对象。 类:...

网友评论

      本文标题:类对象和实例对象

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