1.app首先执行main函数;
2. 执行UIApplicationMain函数。第四个参数指定UIApplication的代理,第三个参数指定UIApplication的类名;
3. UIApplicationMain函数内部
3.1 创建一个UIApplication实例。这个UIApplication是一个单例对象,一个UIApplication对象对应一个iOS应用程序;
3.2 UIApplication对象是应用程序的象征;
3.3 开启一个消息循环(main loop);
3.4 创建一个UIApplication的delegate对象,负责监听UIApplication的生命周期;
3.5 当UIApplication的生命周期发生改变时,会给AppDelegate发送不同的消息。
3.6 每一个应用程序都有属于自己的UIWindow,UIWindow继承于UIView。UIView:视图,屏幕上能看得见摸得着的东西都是UIView,比如按钮,标签,文本输入框等。UIViewController:内部默认有一个UIView视图,UIViewController负责管理UIView的生命周期、装配数据到UIView上显示,处理UIView事件。UIWindow里面包含状态栏和第一个UIViewController,即rootViewController。
下图是MVC的关系视图
Main run loop 处理事务示意图
UIApplication的生命周期
1.当第一次运行程序时
didFinishLaunchingWithOptions:程序加载完毕。
applicationDidBecomeActive:进入激活状态,可以与用户进行交互。
当点击home键时
applicationWillResignActive:退出激活状态,不能与用户进行交互。
applicationDidEnterBackground:进入后台,iOS4之后支持多任务,即程序进入后台之后不会中断。
2.当再次点击进入程序时
applicationWillEnterForeground:进入前台。
applicationDidBecomeActive:已经进入激活状态。**
3.当程序退出是不管是否正常退出都执行
applicationWillTerminate:
网友评论