ios catory和runtime

iosApp的整个调用顺序 

1)dyld 开始将程序二进制文件初始化 

2)交由ImageLoader 读取 image,其中包含了我们的类,方法等各种符号(Class、Protocol 、Selector、 IMP) 

3)由于runtime 向dyld 绑定了回调,当image加载到内存后,dyld会通知runtime进行处理 

4)runtime 接手后调用map_images做解析和处理 

5)接下来load_images 中调用call_load_methods方法,遍历所有加载进来的Class,按继承层次依次调用Class的+load和其他Category的+load方法 

6)至此 所有的信息都被加载到内存中 

7)最后dyld调用真正的main函数 

8)注意:dyld会缓存上一次把信息加载内存的缓存,所以第二次比第一次启动快一点

category的加载时机:

category是在本类的实例方法之后加载的

你可能感兴趣的:(ios catory和runtime)