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,返回的就是 NSObject 的 meta-class 。
class
返回 class 的类对象。









网友评论