程序启动流程
任何程序都从main函数启动,程序入口中调用了UIApplicationMain,实现了3个功能:
1. 创建UIApplication实例
2. 创建应用程序代理实例
3. 建立事件循环(死循环,检测程序运行状态)
应用程序代理
应用程序代理,主要检测应用程序的状态并做出相应的处理。
应用程序的状态有很多,比如:程序启动、进入活跃状态、进到后台、内存警告、收到远程消息等
任何接受了UIApplicationDelegate协议的对象都可以成为应用程序代理。
一旦应用程序的某种状态触发,就会执行相应的代理方法。
UIApplicationDelegate
application:didFinishLaunchingWithOptions:告诉delegate程序启动即将完成,程序准备要运行(delegate实现这个方法时,要创建window对象,将程序内容通过window呈现给用户)
applicationDidBecomeActive: 告诉delegate应用程序已经进入活跃状态(重新执行被暂停的任务)
applicationWillResignActive: 告诉delegate应用程序即将进入非活跃状态(暂停游戏、停止timer等)
applicationDidEnterBackground: 告诉delegate应用程序已经进入到了后台(存储用户数据、释放一些共享资源、停止timer等)
applicationWillEnterForeground: 告诉delegate应用程序即将进入前台(取消所有进入后台时暂停的任务)
注:可以使用NSLog(@"%s", __FUNCTION__);查看当前方法