iOS 类的加载过程

一、_objc_init

1.environ_init(),初始化一系列环境变量,并读取影响运行时的环境变量

2.tls_init(),线程key的绑定

3.static_init(),运行C++静态构造函数

4.lock_init(),空函数

5.exception_init(),初始化libobjc的异常处理系统,注册异常处理的回调,从而监控异常的处理

6._dyld_objc_notify_register(),注册处理程序

二、map_images->_read_images

1.创建表

2.类的重映射

3.修复重映射

4.添加SEL到namedSelector表

5.修复旧的函数指针调用遗留

6.添加Protocol到协议表

7.修复协议列表引用

8.实现非懒加载的类

9.实现懒加载类

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容