metaClass和class的理解
来源:互联网 发布:java ftpclient 卡住 编辑:程序博客网 时间:2024/05/01 18:13
1.metaClass其实就是一个class,只不过它的methodList是+类方法,而普通的class是-实例方法而已。
2.当获取类方法时,只是用的class_getInstanceMethod(class_getMeta(cls),sel)来获取的
3.meta的rootClass等于本身也就是NSObject class的rootClass是nil
runtime源码如下
Method class_getInstanceMethod(Class cls, SEL sel){ if (!cls || !sel) return NULL; return look_up_method(cls, sel, YES/*cache*/, YES/*resolver*/);}/************************************************************************ class_getClassMethod. Return the class method for the specified* class and selector.**********************************************************************/Method class_getClassMethod(Class cls, SEL sel){ if (!cls || !sel) return NULL; return class_getInstanceMethod(_class_getMeta(cls), sel);}
4.meta的meta是啥?????元类的元类的啥?
其实就是本身
class_t *getMeta(class_t *cls){ if (isMetaClass(cls)) return cls; else return cls->isa;}
0 0
- metaClass和class的理解
- python metaclass的理解
- 22 Python class 深入理解Python中的元类(metaclass)
- Groovy探索之MOP 三 Class、MetaClass和ExpandoMetaClass
- python type、isinstance和metaclass的应用
- Python2和Python3的metaclass使用
- 关于Metaclass得理解
- 类与元类(metaclass)的理解
- T和Class<T>以及Class<?>的理解
- T和Class<T>以及Class<?>的理解
- T和Class<T>以及Class<?>的理解
- ArcEngine中CoClass和Class的理解
- 深入的理解abstract class和interface
- 深入的理解abstract class和interface
- ArcEngine中CoClass和Class的理解
- Ruby module和class的理解分析
- new、init和metaclass
- Objc Class And Metaclass(Objective-C类和原类)
- 百度地图快速生成器,百度地图标记,引用百度地图的时候,出现BMap未定义
- 熊猫烧香之专杀工具的书写
- Android官方开发文档Training系列课程中文版:APP的内存管理
- iOS-图片拉伸技巧
- HTML5标签与HTML4的区别
- metaClass和class的理解
- ECMAScript6中的箭头函数
- MapReduce算法形式十:自定义实体类
- 初识jQuery 在笔记手打 可能有误
- 自定义带clean图标的EditText
- double类型的变量通过scanf函数赋值时需注意的问题
- 欢迎使用CSDN-markdown编辑器
- 设计模式之外观模式
- Node.js中URL的解析