设为首页 加入收藏

TOP

Objective-C中的meta-class(二)
2014-11-23 23:16:57 来源: 作者: 【 】 浏览:17
Tags:Objective-C meta-class
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(因为每个类都有它自己唯一的方法列表)


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇NS2下AODV协议aodv.cc注释 下一篇C++ STL中的vector的内存分配与释..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: