iOS 程序启动过程

程序启动过程

1、 用户打开APP,首先应该执行的是----> main.m系统文件中的main函数

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
  • main函数中执行了一个UIApplicationMain函数,程序正常退出时UIApplicationMain函数才返回
int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName);
  • 这个函数中有四个参数,argc、argv可以不用过多关注,主要看后面两个。
    principalClassName:指定应用程序类名(app的象征),该类必须是UIApplication(或子类)。如果为nil,则用UIApplication类作为默认值。
    delegateClassName:指定应用程序的代理类,该类必须遵守UIApplicationDelegate协议。

2、 main函数中的UIApplicationMain函数就指明了程序下一步的去向---->AppDelegate

  • UIApplicationMain函数会根据principalClassName创建UIApplication对象,根据delegateClassName创建一个delegate对象,并将该delegate对象赋值给UIApplication对象中的delegate属性
  • 接着会建立应用程序的Main Runloop(事件循环),进行事件的处理(首先会在程序完毕后调用delegate对象的application:didFinishLaunchingWithOptions:方法)

3、 iOS程序启动完毕后,创建的第一个视图控件就是---->UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,控制器的view就会显示在屏幕上。
- UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow

最后用图示意:


程序启动过程图
关系图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容