2010-08-21 75 views
7

NSObject协议,它定义了一个方法,它类似于此:类型目标C

-(Class) class 

什么类型的对象是类的对象?或者它甚至是一个对象?我可以用这个对象做什么?我可以获得基础类还是采用协议?

回答

15

Class本身是由Objective-C runtime定义的类,类似于Java中的Class类。例如,你可以使用函数class_getClassName()获取类的名字:

NSObject *o = [[[NSObject alloc] init] autorelease]; 
NSLog(@"%s\n", class_getClassName([o class])); // prints "NSObject" 

你可以做各种反省/反射与Class对象;有关详细信息,请参阅Objective-C运行时参考。

1

现在

NSObject *o = [[NSObject alloc]init];
NSLog(@"%s\n", object_getClassName([o class]));

object_getClassName,而不是class_getClassName