CSDN连接地址:http://write.blog.csdn.net/postlist
最近在整理东西,所以就想着把之前在CSDN博客上写的几篇博客搬过来整理到一块,希望能方便大家查看。
main.m文件中的方法简介
Xcode中的main.m文件如上图所示,该方法为Xcode中的main.m文件中默认的一个方法,我们只要创建一个工程它都会出现在我们的工程中,可能你会好奇这个方法是干什么的那么下边就来分析一下它。
这个默认的方法为iOS程序的入口,iOS程序只要一运行便从这个main.m函数开始执行,但是在main函数中我们其实只能看到一个方法,这个方法内部是一个消息循环(相当于一个死循 环),因此运行到这个方法UIApplicationMain之后程序不会自动退出,而只有当用户手动关闭程序这个循环才结束。
从上边可以看出该方法有四个参数分别代表的意思为:
1. argc 参数个数
2. argv 参数内容
3. 第三个参数为UIApplication类(或子类)字符串,这个参数如果默认为nil就代表默认为UIApplication类,如果为nil则等价于NSStringFromClass([UIApplication class]),由于UIApplication是单例模式,所以一个应用程序只有一个UIApplication对象或子对 象;这个参数必须是UIApplication或其子类的名字,它代表当前iPhone程序本身,这个程序会解读info.plist文件获取配置信息,负责应用程序的整个状态,比如包括的状态有:(启动,进入后台,从后台激活,应用程序间的跳转 等等 )
4. 第四个参数:NSStringFromClass([AppDelegate class])的作用是获取类对象 创建一个UIApplication的代理对象,也就应用程序的代理,负责控制程序的运行和监听整个应用程序生命周期的各个事件,当UIApplication运行过程中引发了某个事件之后会调用代理中对应的方法;NSStringFromClass 其实就是从一个类获取字符串,类的描述信息。
AppDelegate中的代理方法简介
AppDelegate就是一个应用程序的代理类,AppDelegate在程序创建的时候iOS程序已经帮我们创建好了,AppDelegate这个代理对象是通过[AppDelegate class]自动创建的,[AppDelegate class]返回的是lei类的描述信息,实际上就是返回了一个类对象。(温馨提示一下:类和类对象是有一定的区分条件的,这个大家可以私地下去看一看runtime方面的知识,这里不做过多解释)
AppDelegate这个类能成为iOS应用程序的代理对象是因为遵守了UIApplicationDelegate协议,下面就针对协议中的一些方法进行简单介绍一下。
1、- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {}
该方法是iOS平台相关设置完之后开始载入时候调用的方法, 该方法是用界面的入口, 如果希望在应用程序一开始的时候,做些事情,可以在该方法中执行,就UIApplicationDelegate协议中方法而言程序一运行进入的时候先执行该方法。
2、- (void)applicationDidBecomeActive:(UIApplication *)application {}
执行完上边的方法会执行该方法,该方法的的作用是当应用程序已经进入活动状态时执行,它与
- (void)applicationWillResignActive:(UIApplication *)application {}
方法是相反的
---_
3、 **- (void)applicationWillResignActive:(UIApplication *)application {}
**
当应用程序将要进入非活动状态时执行, 比如来电话,从后台进入到程序时调用。
4、** - (void)applicationDidEnterBackground:(UIApplication *)application {}
**
应用程序已经进入到后台的时候会调用该方法。
5、 - (void)applicationWillEnterForeground:(UIApplication *)application {}
应用程序将要回到前台时候调用。
6、- (void)applicationWillTerminate:(UIApplication *)application {}
网友评论