总结来说,大体分为如下步骤:
(1) 系统为程序启动做好准备
(2) 系统将控制权交给 Dyld,Dyld 会负责后续的工作
(3) Dyld 加载程序所需的动态库
(3) Dyld 对程序进行 rebase 以及 bind 操作
(4) Objc SetUp
(5) 运行初始化函数
(6) 执行程序的 main 函数
程序启动的完整过程如下:
1.main 函数
2.UIApplicationMain
创建UIApplication对象
创建UIApplication的delegate对象
delegate对象开始处理(监听)系统事件(没有storyboard)
程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法
在application:didFinishLaunchingWithOptions:中创建UIWindow
创建和设置UIWindow的rootViewController
。
网友评论