在Objective-C中,任何类的定义都是对象。类和类的实例(对象)没有任何本质上的区别。任何对象都有isa指针。
理解点:类也都是对象(以下都用对象称呼) ,对象都有isa指针
1.每个 实例对象 的类都是 类对象 ,每个类对象的类都是元类对象,每个元类对象的类都是根元类(root metaclass的isa指向自身)
对象角度层次(横向):实例对象->类对象->元类对象->根元类对象(上层对象是下层对象的类,实例对象不是其他对象的类,元类对象的类是根元类对象)
2.类对象的父类最终继承自根类对象NSObject,NSObject的父类为nil3.元类对象(包括根元类)的父类最终继承自根类对象NSObject
类角度层次(纵向):子类->父类->根类(而根元类继承自根类)
3.类对象(类)与元类对象(元类)(包括根元类)的父类最终继承自根类对象NSObject