Category
在编译过后,是在什么时机与原有的类合并到一起的?
- 程序启动后,通过编译之后,Runtime 会进行初始化,调用
_objc_init
。 - 然后会
map_images
。 - 接下来调用
map_images_nolock
。 - 再然后就是
read_images
,这个方法会读取所有的类的相关信息。 - 最后是调用
reMethodizeClass:
,这个方法是重新方法化的意思。 - 在
reMethodizeClass:
方法内部会调用attachCategories:
,这个方法会传入 Class 和 Category ,会将方法列表,协议列表等与原有的类合并。最后加入到class_rw_t
结构体中。
面试题持续整理更新中,需要拿到第一手大厂面试题及答案文档可以添加 iOS进阶学习交流群:551346706 !结实人脉、讨论技术你想要的这里都有!
![]()
网友评论