美文网首页
objc_getClass/object_getClass/cl

objc_getClass/object_getClass/cl

作者: _一叶孤帆 | 来源:发表于2021-02-04 23:29 被阅读0次

objc_getClass

OBJC_EXPORT Class _Nullable
objc_getClass(const char * _Nonnull name)
    OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0);

通过一个类名来获取一个类对象

Class oc  =  objc_getClass((const char *)"NSObject");
        
NSLog(@"%p, %p",oc,[NSObject class] );
2021-02-04 23:03:38.929315+0800 object[1674:47720] 0x7fff88a9be08, 0x7fff88a9be08

object_getClass

OBJC_EXPORT Class _Nullable
object_getClass(id _Nullable obj) 
    OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);

源码实现:

Class object_getClass(id obj)
{
    if (obj) return obj->getIsa();
    else return Nil;
}

可以看出,源码中是返回了对象的isa,如果传入的是 instance 对象,返回的就是类对象,而如果传入的是类对象,返回的就是 meta-class, 如果传入的是 meta-class,返回的就是 NSObjectmeta-class

class

返回 class 的类对象。

相关文章

网友评论

      本文标题:objc_getClass/object_getClass/cl

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