1、创建工程时自动生成一个main函数: int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } 2、方法的作用: argc, argv, nil, NSStringFromClass([AppDelegateclass])参数的意义: argc:系统或者用户传入的参数 argv:系统或用户传入的实际参数 1.根据传入的第三个参数,创建UIApplication对象 2.根据传入的第四个产生创建UIApplication对象的代理 3.设置刚刚创建出来的代理对象为UIApplication的代理 4.开启一个事件循环(可以理解为里面是一个死循环)这个时间循环是一个队列(先进先出)先添加进去的先处理 3.delegate对象开始处理(监听)系统事件(没有storyboard) * 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法 * 在application:didFinishLaunchingWithOptions:中创建UIWindow * 创建和设置UIWindow的rootViewController * 显示窗口 3.根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard) * 创建UIWindow * 创建和设置UIWindow的rootViewController * 显示窗口