
类的加载原理
文章平均质量分 97
类的加载原理探索
卡卡西Sensei
这个作者很懒,什么都没留下…
展开
-
iOS底层探索之类的加载(四):类的关联对象AssociatedObject
1. 回顾 在前面的几篇博客中,主要讲了类的加载、包括分类的加载底层探索,本次就类的扩展和关联对象进行分析。 iOS底层探索之类的加载(三): attachCategories分析 2. 扩展 2.1 什么是分类和扩展 首先我们来看看什么是分类和扩展 category: 类别/分类 专门用来给类添加新的方法 不能给类添加成员属性,添加了成员变量,也无法取到 注意:其实可以通过runtime给分类添加属性 分类中用@property定义变量,只会生成变量的 getter,setter方法的声明,不能生成原创 2021-07-27 17:31:40 · 460 阅读 · 0 评论 -
iOS底层探索之类的加载(三): attachCategories分析
1.回顾 在上篇博客中,已经对类的加载有了一定的了解,分类的加载也定位到了attachCategories方法中,那么本篇博文将对分类进行探索分析! iOS底层探索之类的加载(二): realizeClassWithoutSwift分析 2. 分类分析 2.1 分类加载路线 在上篇博客中通过反推,已经确定了分类加载的两条路线,分别是: methodizeClass --> attachToClass --> attachCategories load_images --> loadAl原创 2021-07-21 17:38:43 · 622 阅读 · 4 评论 -
iOS底层探索之类的加载(二): realizeClassWithoutSwift分析
1. 回顾 在上篇博文中,已经从dyld到_objc_init再到read_images整个流程串联起来了,最后定位到了类的初始化是在realizeClassWithoutSwift中,本篇博文将深入分析类的加载,请搬好板凳做下仔细往下看。 iOS底层探索之类的加载(一):read_images分析 2.realizeClassWithoutSwift 在read_images流程中,会对类进行一些修复工作,同时会将类的名称与类进行关联,插入对照表中,并更新到内存中的类表。 rw和ro的处理我们还不得而原创 2021-07-20 18:16:28 · 814 阅读 · 2 评论 -
iOS底层探索之类的加载(一):read_images分析
1. 回顾 在前两篇博文中,已经对dyld动态链接器的底层源码进行了探索分析,但是dyld链接images镜像文件到内存的过程我们还不知道,接下来的几篇博文就着重去探索。 iOS底层探索之dyld(上):动态链接器流程分析 iOS底层探索之dyld(下):动态链接器流程源码分析 _objc_init方法向dyld中注册了回调函数,下面就补充一点内容,探究下_objc_init方法。 2. _objc_init简单分析 先来看看_objc_init的底层源码 void _objc_init(void原创 2021-07-19 17:13:05 · 901 阅读 · 0 评论