App的启动过程

时间:2021-06-06 04:20:01
     app的启动过程

     1.执行main
     2.执行UIApplicationMain
       2.1会创建UIApplication对象,并设置它的代理
       2.2会开启一个事件循环(主运行循环,死循环,保证程序不退出)
       2.3加载info.plist。判断info.plist当中有没有指定的main。

        {   如果指定的话,加载Main.storyBaord。加载之前会创建一个UIWindow。每一个UIWindow都必须要有一个跟控制器,rootViewController。会把Main.storyBaord当中的控制器设置为UIWindow的rootViewController,设置的目的是强引用箭头指向的控制器,让它不释放。
            把Main.storyBaord当中箭头指定的控制器的View添加到UIWindow,让UIWindow显示出来。
         }

        {
          如果没有指定的话
          1.创建窗口
          2.设置窗口的跟控制器(每一个UIWindow都必须要有一个跟控制器,rootViewController)
          3.显示窗口
             //[self.window makeKeyAndVisible] 内部做的事情
            3.1.设置当前窗口为应用的主窗口
            [UIApplication sharedApplication].keyWindow = self.window;
            3.2 显示窗口
             self.window.hidden = NO;
             把窗口的跟控制器添加到窗口上面
             [self.window addSubview:self.window.rootViewController.view];

        }

       2.4通知应用程序代理,应用程序启动完毕。didFinishLaunchingWithOptions