任何一个程序,无论是基于mac OS 还是iOS,程序都是从Main.m文件的main函数开始执行的。
UIApplocationMain在程序入口函数main函数中调用,主要实现了3个功能:
1:创建应用程序(UIApplication)实例
2:创建应用程序代理(ApDelegate)实例
3:建立事件循环(runloop:死循环,不断检测程序运行状态,是够被触摸、晃动等)
UIApplicationDelegate的代理方法
pragma mark 程序加载完毕(启动完毕)就会调用一次
//告诉delegate程序启动即将完成,程序准备要运行。(delegate实现这个方式时,要创建window对象,将程序内容通过window呈献给用户)
(BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions
pragma mark 应用程序失去焦点的时候调用(一个app如果失去焦点,就不能跟用户进行交互)
//告诉delegate应用程序即将进入非活跃状态(暂停游戏、停止timer等)
(void)applicationWillResignActive:(UIApplication *)application
pragma mark 程序进入后台就会调用
//告诉delegate应用程序已经进入到了后台(存储用户数据、释放一些公共资源、停止timer等)
(void)applicationDidEnterBackground:(UIApplication *)application
pragma mark 程序即将进入前台的时候调用
//告诉delegate应用程序即将进入前台(恢复所有进入后台暂停的服务)
(void)applicationWillEnterForeground:(UIApplication *)application
pragma mark 应用程序获得焦点的时候调用(一个app只有获得焦点之后才能跟用户进行交互)
//告诉delegate应用程序即将进入活跃状态(从新执行被暂停的服务)
(void)applicationDidBecomeActive:(UIApplication *)application
pragma mark 程序即将被关闭的时候可能会被调用(应用程序即将退出,从内存中清除,iOS4之后有applicationDidEnterBackground:替代)
(void)applicationWillTerminate:(UIApplication *)application
pragma mark 程序接收到内存警告都会调用
(void)applicationDidReceiveMemoryWarning:(UIApplication *)application