在Objective-C
中,如何获取元类对象? [self class]
和[ClassName class]
都只返回Class对象。
答案 0 :(得分:4)
答案 1 :(得分:2)
object_getClass([self class])
object_getClass([ClassName class])
答案 2 :(得分:1)
您可能必须使用objective-C运行时函数object_getClass
来获取类对象的类。
好的写作What is a meta-class in Objective-C详细介绍了元类。但是,在某些情况下,元类的类本身就是类。
答案 3 :(得分:1)
您是否希望获取元编程/反射的信息?
此信息可通过plain-C API获取。
与其他一些面向对象的语言不同,元类本身在信息上非常薄弱,其他C函数填充了细节。
如果您是Objective-C,C和C ++的新手,可能更容易使用Mike Ash的Objective-C wrapper library。
答案 4 :(得分:-2)
您可以通过
获取对象的元类[[self class] class]
[self class]产生一个指向Class对象的指针(即isa指针指向的对象)。由于这是一个具有类的对象,因此可以再次按照isa指针获取元类。
您可以在此博文(http://www.sealiesoftware.com/blog/class%20diagram.pdf)和http://www.sealiesoftware.com/blog/archive/2009/04/14/objc_explain_Classes_and_metaclasses.html中找到以不同方式解释的图表(another post)。很抱歉这些奇怪的链接,但我必须通过声誉过滤器......
我很想知道为什么你想要一个指向元类的指针...