class、object_getClass、objc_getCl

2022-06-08  本文已影响0人  iOS技术交流

在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指针指向的类对象(即指向类对象的指针,即对应的类)。

希望以上内容能帮到你们,谢谢。

上一篇下一篇

猜你喜欢

热点阅读