分类的作用
分类与属性的区别
分类只是实现了结构体的读写方法
存储当前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