在Objective-C的类型结构中,有几个比较重要的概念:Object(实例),Class(类),Metaclass(元类),Rootclass(根类),Rootclass‘s metaclass(根元类),且这些都是对象。
对于class、object_getClass、objc_getClass这三种方法,全部返回CLass类对象;objc_getMetaClass方法返回元类对象。
直接代码测试:
打印结果:
总结:
1、如果是instance实例对象,返回class对象;
2、如果是class类对象,返回meta-class对象;
3、如果是meta-class元类对象,返回NSObject(基类)的meta-class对象
4、objc_getMetaClass 获取元类MetalClass
5、objc_getClass 获取对应类Class
6、object_getClass 获取 object 的isa指针对象
二、object_getClass(obj)与[obj class]的区别
打印结果如下:
总结:
object_getClass(obj)与[obj class]打印结果一样;获得的isa指针指向的类对象(即指向类对象的指针,即对应的类)。
希望以上内容能帮到你们,谢谢。