应用程序启动原理

应用程序启动原理

  • 程序的入口:main函数

  • 1.执行main

    • UIApplicationMain(argc,argv,nil,NSStringFromClass([AppDelegate class]))
      • 第三个参数:应用程序对象的名称,如果指定为nil,就代表是@“UIApplication”
        • nil默认代表写了一个UIApplication字符串
      • 第四个参数:Delegate的classname
        • 默认代表@@"AppDelegate"
  • 2.执行UIApplication对象

    • UIApplicationMain内部会创建UIApplication对象,并设置它的代理
    • 创建一个事件循环,主运行循环(死循环:保证应用程序一直能够运行),保证应用程序不退出
    • 加载配置文件,读取配置信息
    • 读取info.plist文件时,会做很多判断,其中包括一项Main storyboard file base name 有没有指定main
    • 如果指定,就会加载main.storyboard显示出来,如果没有指定main,就什么都不去做
    • 读取完毕后,会通知应用的代理,应用程序启动完毕,就会调用application的didFinishLaunchWithOptions:
  • 在加载info.plist后,判断下是否指定main,如果指定了,就会去加载StoryBoard.

    • 1.创建一个窗口
    • 2.加载MainStoryBoard,初始化一个控制器.
    • 3.把初始化出来的控制器设置为窗口的根控制器.让窗口显示到屏幕上.
  • 如果没有指定Mian话, 那这个时候就需要我们手动的去创建窗口.

  • 当info.plist文件没有找到的时候,那么程序就加载完毕,那么在程序加载完毕时要自己手动去创建窗口.

你可能感兴趣的