OC中的对象分为三类:
1.实例对象(Instance)
实例对象中包含的内容:
a.isa指针(父类的结构体);
b.成员变量;
2.类对象(class)
一个类有且只有一个类对象
类对象中包含的内容:
a.isa指针;
b.superClass指针;
c.类的属性信息(@property);
d.类的实例方法信息(instance method);
e.类的协议信息(protocol);
f.类的成员变量描述信息(ivar);
3.元类对象(meta-class)
一个类有且只有一个元类对象
元类对象与类对象同为Class类型
元类对象中包含的内容:
a.isa指针;
b.superClass指针;
c.类方法信息
三种对象之间的关系:
实例对象的isa指针指向类对象 ,类对象的isa指针指向元类对象,子类和父类的元类对象的isa指针都指向基类元类对象,基类元类对象的isa指针指向自己;
类对象的superclass指针指向父类类对象,父类类对象的superclass指针指向基类类对象,基类类对象的superclass指针指向nil;
元类对象的superclass指针指向父类元类对象,父类元类对象的superclass指针指向基类元类对象,基类元类对象的superclass指针指向基类类对象,基类类对象的superclass指针指向nil;