【问题标题】:Class type Objective C类类型Objective C
【发布时间】:2011-04-02 03:02:59
【问题描述】:

NSObject协议中,它定义了一个类似这样的方法:

-(Class) class

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

【问题讨论】:

    标签: objective-c class types nsobject


    【解决方案1】:

    现在

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

    object_getClassName 而不是class_getClassName

    【讨论】:

      【解决方案2】:

      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 运行时参考。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-05
        • 2011-10-08
        相关资源
        最近更新 更多