ion,我们需要建立这个动态创建的类的实例,然后调用它的report方法 id instanceOfNewClass = [[newClass alloc] initWithDomain:@”someDomain” code:0 userInfo:nil]; [instanceOfNewClass performSelector:@selector(report)]; [instanceOfNewClass release]; 因为没有report方法的声明,我使用performSelector:来调用它,所以编译不会给出什么警告 ReportFunction将遍历isa指针,告诉我们那些对象被当成类,meta-class,以及meta-class的类 来使用 取得一个对象的类:ReportFunction将使用object_getClass来追踪isa指针, 因为isa指针是类的一个被保护的成员(你不能直接访问其他类的isa指针) ReportFunction不使用类方法来实现这个,因为调用一个类对象的类方法,将不会返回meta-class. 而是再次返回这个类(所以[NSString class]将返回NSString类,而不是NSString的meta-class) 结论: meta-class是类对象的类。每个类都有它自己唯一的meta-class(因为每个类都有它自己唯一的方法列表)
|