UI程序的运行过程
1.首先进入main 函数
2.执行 UIApplicationMain 函数
* 创建UIApplication对象
* 创建UIApplication的delegate对象
3(.没有storyboard)delegate对象开始处理(监听)系统事件
* 程序启动完毕的时候, 就会调用代理的didFinishLaunchingWithOptions:方法
* 在didFinishLaunchingWithOptions:中创建UIWindow
* 创建和设置UIWindow的rootViewController
* 显示窗口
3.有 storyboard 的程序 会查找info.plist文件中 主storyboard
* 创建和设置UIWindow的rootViewController
* 显示窗口
注意 程序启动时首先创建的对象为UIApplication而且UIApplication对象只能通过 [UIApplication shareApplication ]方法获取,不可以自己创建;
程序四大对象
UIApplication AppDelegate UIWindow UIViewController
UIApplication 为程序的象征 为单例 是由系统自己创建的 不可以手动 [[UIApplication alloc] init]
AppDelegate 是UIApplication的代理对象 ,为程序做一些系统级别操作 比如程序运行过程中退入后台 以及 程序终止 之前数据保存 都需要代理去做
UIWindow 是用来显示数据的窗口 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow (可以创建多个)
iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了
没有UIWindow,就看不见任何UI界面
UIViewController 视图控制器 通常将UIViewcontrllor 的视图添加到window上 有两种方式 self.window addSubview(vc); self.window.rootViewContrller = vc;推荐使用第二种 因为第二种可以由UIWindow 管理VC的生命周期,而第一种仅仅是管理VC的view视图 并不会管理VC