1. Info.plist和pch文件的作用
2. UIApplication的常见使用
3. AppDelegate的代理方法
4. UIApplication , AppDelegate , UIWindow , UIViewController 的关系
5. IOS程序的完整启动过程
﹣IOS程序的完整启动过程﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣我是分割线﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣
// 1.1程序一执行就会执行main函数 int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } // 2.然后会执行UIApplicationMain int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName); // 2.1根据参数 principalClassName 创建UIApplication对象 // 2.2根据参数 delegateClassName 创建UIApplication的delegate对象 //3. delegate对象开始处理(监听)系统事件,分两种情况(有storyboard和没storyboard) //3-1.delegate对象开始处理(监听)系统事件(没有storyboard) //3-1-1 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //3-1-2 在application:didFinishLaunchingWithOptions:中创建UIWindow self.window = [[UIWindow alloc] initWithFrame:[[uiScreen mainScreen] bounds]]; //3-1-3 创建和设置UIWindow的rootViewController(根控制器) CwlMainViewController *mainViewController = [CwlMainViewController alloc] init]; self.window.rootViewController = mainViewController; // 设置根控制器 //3-1-4 显示窗口 [self.window makeKeyAndVisable]; return YES; } //3-2.根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard) // 创建UIWindow // 创建和设置UIWindow的rootViewController // 显示窗口
控制器创建view的完整过程
* 控制器的view是延迟加载