美文网首页
Main方法讲解-应用程序启动原理

Main方法讲解-应用程序启动原理

作者: js_huh | 来源:发表于2020-08-09 14:32 被阅读0次
  • 启动原理:
    • 程序一启动,就会加载load 方法,把所有东西,加载到"内存"
      然后,加载main 方法
    • 执行main 函数 --> 执行UIApplicationMain 函数 --> 初始化UIApplication
    • 开启事件循环

  • 分析 main.m
    int main(int argc, char * argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
      }
    }
    
  • main.m 文件,它其实只是做了2件事情
    • 执行main 函数
    • 执行UIApplicationMain
      • NSStringFromClass: 把类名转换为字符串。
      • argc, argv, 是C语言(main 函数,传过来的参数)
      • 第3个参数: 要创建对象的名称。
        如果为:nil,则是 @"UIApplication"
      • 第4个参数: 创建对象的代理名称。@"AppDelegate"

  • 上面方法可以写成这样, 因为第3,4个参数是NSString 类型
    return UIApplicationMain(argc, argv, @"UIApplication",@"AppDelegate");
    

  • UIApplicationMain 方法到底做了些什么呢?
    • 创建UIApplication 对象,为UIApplication 对象设置代理对象AppDelegate
    • 开启一个事件循环
      (主运行循环 == 死循环,保证应用程序不退出)
    • 加载info.plist文件,根据配置文件,做相应的配置。比如:
      • 是否指定,启动界面的文件(LaunchScreen), 有则显示,无则不去加载"启动界面"
      • 是否指定Main storyboard文件(Main),有则加载Main.storyboard文件。
    • 通知应用程序代理,应用程序启动完毕.
      调用AppDelegate.m里的didFinishLaunchingWithOptions 方法

相关文章

网友评论

      本文标题:Main方法讲解-应用程序启动原理

      本文链接:https://www.haomeiwen.com/subject/ijkwrktx.html