Open
Description
详细的代码解析见 我的博客网站 coderlin.coding.me 《iOS Category 源码解析》这篇博客
- 程序启动后,通过编译之后,Runtime 会进行初始化,调用 _objc_init。在 _objc_init会注册镜像加载结束后的通知。
- 在镜像被加载后会调用 map_images。
- 接下来调用 map_images_nolock。
- 再然后就是 read_images,这个方法会读取所有的类的相关信息。
- 最后是调用 remethodizeClass:,这个方法是重新方法化的意思。
- 在 remethodizeClass: 方法内部会调用 attachCategories: ,这个方法会传入 Class 和 Category ,会将方法列表,协议列表等与原有的类合并。最后加入到 class_rw_t 结构体中。
Metadata
Metadata
Assignees
Labels
No labels