美文网首页iOS面试基础
iOS Runtime面试题(Category 在编译过后,是在

iOS Runtime面试题(Category 在编译过后,是在

作者: 程序员_秃头怪 | 来源:发表于2019-08-01 16:39 被阅读4次

    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进阶学习交流群:551346706 !结实人脉、讨论技术你想要的这里都有!

    相关文章

      网友评论

        本文标题:iOS Runtime面试题(Category 在编译过后,是在

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