Category(待续)

185 阅读1分钟

分类的作用

分类与属性的区别

  分类只是实现了结构体的读写方法
  存储当前value的容器

关联的属性是如何管理的

extension

类的一部分

编译时期

隐藏类的私有属性

对象的内存布局确定

内存空间

结构体

category

运行时期

不能添加变量

Category的底层原理

关联对象

Load方法

loadImages程序开始运行是加载object库和lib镜像,在loadImages中调用Load方法

调用prepare_load_methods()

调整当前的调用顺序

Class

    1.递归遍历
    2.loadable_class<cls,method>

Category

    1.loadabl_category
    2.编译顺序有关
    because
    不管是类、子类还是分类的所有方法都是存在于loadabl_category中,
    在assManager中排好了顺序
    So
    方法的调用顺序,是在编译期就确定下来的,
    class()->subClass()->category()
    关于多个分类同名方法的调用的问题:
    在buildPhases中的最后加载的文件为准

调用call_load_methods()

先调用loadable_classs

再调用loadable_category