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.实现懒加载类

你可能感兴趣的:(iOS 类的加载过程)