【发布时间】:2011-04-02 03:02:59
【问题描述】:
在NSObject协议中,它定义了一个类似这样的方法:
-(Class) class
Class 对象是什么类型的对象?或者它甚至是一个对象?我可以用这个对象做什么?我可以获得基类或采用的协议吗?
【问题讨论】:
标签: objective-c class types nsobject
在NSObject协议中,它定义了一个类似这样的方法:
-(Class) class
Class 对象是什么类型的对象?或者它甚至是一个对象?我可以用这个对象做什么?我可以获得基类或采用的协议吗?
【问题讨论】:
标签: objective-c class types nsobject
现在
NSObject *o = [[NSObject alloc]init];
NSLog(@"%s\n", object_getClassName([o class]));
object_getClassName 而不是class_getClassName
【讨论】:
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 运行时参考。
【讨论】: