美文网首页
iOS 面试题(Category 在编译过后,是在什么时机与原有

iOS 面试题(Category 在编译过后,是在什么时机与原有

作者: 原来是泽镜啊 | 来源:发表于2020-04-14 20:34 被阅读0次
Category 在编译过后,是在什么时机与原有的类合并到一起的?

1,程序启动后,通过编译之后,Runtime 会进行初始化,调用 _objc_init。
2,然后会 map_images。
3,接下来调用 map_images_nolock。
4,再然后就是 read_images,这个方法会读取所有的类的相关信息。
5,最后是调用 reMethodizeClass:,这个方法是重新方法化的意思。
6,在 reMethodizeClass: 方法内部会调用 attachCategories: ,这个方法会传入 Class 和 Category ,会将方法列表,协议列表等与原有的类合并。最后加入到 class_rw_t 结构体中。

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:413038000,不管你是大牛还是小白都欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!

推荐阅读

iOS开发——最新 BAT面试题合集(持续更新中)

相关文章

网友评论

      本文标题:iOS 面试题(Category 在编译过后,是在什么时机与原有

      本文链接:https://www.haomeiwen.com/subject/ptgfphtx.html