iOS —UIApplication

    UIApplication是应用程序的象征,每一个应用都有自己的UIApplication对象,而且是单例。通过[UIApplication sharedApplication]可以获得这个单例对象。说到单例对象,还有几个常见的单例,比如[NSNotificationCenter defaultCenter],  [NSUserDefaults standardUserDefaults],  [NSFileManager defaultManager]等等。

    AppDelegate — 在app受到干扰时,比如来电或者锁屏,会产生一些系统事件,这时UIApplication会通知它的delegate对象,让delegate代理来处理这些系统事件。

举例说几个代理方法

  • application:willFinishLaunchingWithOptions: - 这个方法是在启动时的第一次机会来执行代码
  • application:didFinishLaunchingWithOptions: - 这个方法允许在显示app给用户之前执行最后的初始化操作
  • applicationDidBecomeActive: - app已经切换到active状态后需要执行的操作
  • applicationWillResignActive: - app将要从前台切换到后台时需要执行的操作
  • applicationDidEnterBackground: - app已经进入后台后需要执行的操作
  • applicationWillEnterForeground: - app将要从后台切换到前台需要执行的操作,但app还不是active状态
  • applicationWillTerminate: - app将要结束时需要执行的操作
  • applicationDidReceiveMemoryWarning: -app接收到内存警告时调用

整个应用程序的生命周期如下。

iOS —UIApplication

1.触发app

2.然后到main函数执行

3.通过UIApplicationMain函数,初始化UIApplication对象

4.并且为他设置代理对象AppDelegate。

5.接着会建立应用程序的Main Runloop(事件循环),进行事件的处理(首先会在程序完毕后调用delegate对象的application:didFinishLaunchingWithOptions:方法)

6.程序正常退出时UIApplicationMain函数才返回