一、Main.m的运行步骤
1.创建UIApplication对象
2.创建APPDelegate对象,并且成为UIApplication对象代理属性
3.开启主线程运行循环:目的是让程序一直跑起来
4.加载info.plist文件,判断下info.plist文件里面有没有指定的main.storyboard,如果指定,就会去加载main.storyboard
二、在main()函数执行前,系统主要会做下面几件事情:
1、加载可执行文件(App的.o文件的集合);
2、加载动态链接库,进行rebase指针调整和bind符号绑定;
3、Objc运行时的初始处理,包括Objc相关类的注册、category注册、selector唯一性检查等;
4、初始化,包括了执行+load()方法、attribute((constructor))修饰的函数的调用、创建C++静态全局变量。