### iPhone开发概述
iOS 加载 app 将要结束时并且 app 程序差不多已经准备好运行的时候会调用这个方法,通常我们需要使用这个方法来完成 app 的初始化和最后设置的一些微调.这个方法调用发生在 app 的 window 和 UI 之前.
- (BOOL)application:(UIApplication *)application didFinishLanunchingWithOption:(NSDictionary *)LaunchOptions
当应用程序将要进入非活动状态执行,在此期间,应用程序不接受消息或事件,比如说来电话了、锁屏。通常在这个方法里实现: 停止 timer 和其他周期性的任务、停止任何正在运行的请求、暂停视频的播放、如果是游戏就暂停它、减少OpenGL ES的帧率、刮起任何分发的队列和不重要的操作队列(你可以处理网络请求或者其他时间敏感的后台任务).
- (void)appliWillResignActive:(UIApplication *)application
当应用进入活动状态执行,这个状态刚好和上面的那个方法相反,需要实现任务的重新开始,比如说重新开始 timer, 继续分发队列,提高 OpenGL ES 的帧率.不过游戏要回到暂停状态,不能自动开始.
- (void)applicationDidBecamActive:(UIApplication *)appliction
当程序被推送到后台的时候调用.所以要设置后台继续运行,则在这个函数里面设置即可.在这个方法需要实现:保存用户数据或状态信息,所有没有写到磁盘的文件或信息,在进汝后台时,最后都写到磁盘去,因为程序可能在后台被杀死,释放尽可能释放的内存
- (void)applicationDidEnterBackground:(UIApplication *)application
当程序从后台将要程序回到前台时调用,这个刚还与上面的那个方法相反.
- (void)applicationWillEnterForeground(UIApplication *)application
当程序将要退出时被调用通常使用来保存数据和一些退出前的清理工作.这个需要设置 UIApplicationExitsOnSuspend的键值.
- (void)applicationWillTerminate:(UIApplication *)application
# import <UIKit/UIKit.h>
# import "PNAppDelegate.h"
int main(int argc, char * argv[])
{
@autoreleasepool{
return UIApplicationMain(argc,argv,nil,NSStringFromClass([PNAppDelegate class]));
}
}
UIApplicationMain 函数有四个函数,你不需要改变这些参数值,不过我们需要理解这些参数和程序是如何开始的: argc 和 argv 参数包含了系统带过来的启动时间.第三个参数确定了主要应用程序类的名称,这个参数指定为 nil, 这样 UIKit 就会使用默认的 UIApplication 类创建对象.第四个参数是程序自定义的代理类名,这个类负责系统和代码之间的交互.它一般在 Xcode 新建项目是会自动生成.
另外 UIApplicationMain 函数加载了程序主界面的文件.虽然这个函数加载了界面文件,但是没有放到应用程序的 windows 上.
重点理解, UIApplicationMain 的做的三件事:
1.根据第三个参数创建 UIApplication 对象.
2.根据第四个参数创建应用程序的 delegate, 并设置 delegate.
3.设置主事件循环( main event loop) 包括 application 的 run loop, 同时开始处理事件.
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/www_nyp_boke/article/details/46763261