摘要:在ios开发中有一个文件main.m文件,本文我们主要分析这个主函数里面到底做了哪些工作和任务。(转自:云图库).
一、main.m的代码如下:
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char * argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
二、函数分析
在main.m文件中只有一个main()方法,且主要导入两个头文件包:UIKit.h和AppDelegate.h
UIApplication对象是应用程序的象征,每一个应用都有自己的UIApplication单例对象。通过[UIApplication sharedApplication]可以获得这个单例对象,一个iOS程序启动后创建的第一个对象就是UIApplication对象,利用UIApplication对象,能进行一些应用级别的操作。
其中在main方法中UIApplicationMain创建一个UIApplication对象。每个ios应用程序都会有且只有一个UIApplication对象,此对象也是单例,负责单例对象的维护和循环运行事件。
程序中一旦创建了某个UIApplication单例对象,对象就会一直循环下去。
通过查看上述int main()函数,发现UIApplicationMain还会创建某个指定类(也是AppDelegate)对象,并设置delegate;
并且UIApplicationMain的第三个参数是NSString类型,代表是该对象所属的类。
三、启动步骤如下:
1.main启动函数。
2、创建UIApplication对象。
3、创建UIApplication的delegate对象。
4、delegate对象开始处理(监听)系统事件(没有storyboard)。
5、程序启动完毕的时候,就会调用代理的application:didFinishLaunchingWithOptions:方法。
6、在application:didFinishLaunchingWithOptions:中创建UIWindow。
7、创建和设置UIWindow的rootViewController。
8、开始显示窗口,呈现给用户界面。