iOS APP启动过程

首先了解一下程序执行的四个步骤

预处理, 展开头文件/宏替换/去掉注释/条件编译 

编译,    检查语法,生成汇编                                

汇编,  汇编代码转换机器码 ,汇编生成的文件是 .o类型的。                                     

链接    链接到一起生成执行程序 


main函数之后

函数 initialize 是在main函数之后调用的,initialize是 在这个类接收第一条消息之前调用。

调用特点:

1.父类的initialize方法会比子类先执行

2.当子类未实现initialize方法时,会调用父类initialize方法,子类实现initialize方法时,会覆盖父类initialize方法.

3.当有多个Category都实现了initialize方法,会覆盖类中的方法,只执行一个(会执行Compile Sources 列表中最后一个Category 的initialize方法)

main函数之前

加载动态链接库需要做指针调整和符号绑定。

OC的runtime初始化包括class和category的注册、selector唯一性的检查。

初始化包括调用+(void)load方法的调用,用attribute((constructor))修饰的函数的调用、创建C++静态全局变量等。

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

推荐阅读更多精彩内容