美文网首页iOS学习笔记OSiOS 易混淆的点
iOS程序启动过程(生命周期)

iOS程序启动过程(生命周期)

作者: YotrolZ | 来源:发表于2015-08-25 10:11 被阅读315次

程序启动的过程总结

1.main函数

2.UIApplicationMain

int UIApplicationMain(int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName);
  • 此函数会根据principalClassName创建UIApplication对象
  • 此函数会根据delegateClassName创建一个delegate对象
  • 并将该delegate对象赋值给UIApplication对象中的delegate属性
UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]))
  • principalClassNamenil,默认是UIApplication,创建一个 UIApplication对象
  • delegateClassName不能传nil,这里传nil,意味着application没有代理,就无法监听系统的事件,系统的事件都没法监听,窗口都不知道什么时候去加载,因为视图都是懒加载的,因此就不会创建窗口,什么东西都没有。
  • argc,argv : ISO C标准main函数的参数,直接传递给UIApplicationMain进行相关处理即可

3.delegate对象开始监听(处理)系统事件(没有storyboard),手动执行

  • 程序启动完毕的时候,就会调用代理的application:didFinishLaunchingWithOptions:方法
  • application:didFinishLaunchingWithOptions:中创建UIWindow
  • 创建和设置UIWindow的rootViewController
  • 显示窗口

4.delegate对象开始监听(处理)系统事件(有storyboard),系统自动执行

  • 根据info.plist文件获得最主要的storyboard的文件名,加载最主要的storyboard
  • 创建UIWindow
  • 创建和设置UIWindow的rootViewController
  • 显示窗口
mian.storyboard的加载过程.png
  • 内部实现原理(由系统自动完成):
main.storyboard内部实现原理.png

相关文章

  • iOS面试题:生命周期

    1. 程序的生命周期 a. 程序的生命周期是指应用程序启动到应用程序结束整个阶段的全过程b.每一个IOS应用程序都...

  • iOS App生命周期

    iOS程序的启动执行顺序 转自 s_在路上的App的生命周期 程序启动顺序具体执行流程 启动程序 按下 Comma...

  • App启动原理

    一、程序启动原理 二、程序启动完整过程: 三、ViewController的生命周期 https://www.ji...

  • 深入理解iOS App的启动过程

    前言 参考资料:深入理解iOS App的启动过程iOS 应用程序启动过程及原理总结iOS:App启动过程详解(不同...

  • 应用程序生命周期

    16/08/04/wed iOS应用程序生命周期 应用程序的状态 Not running :未运行,程序没有启动...

  • iOS程序启动过程(生命周期)

    程序启动的过程总结 1.main函数 2.UIApplicationMain 此函数会根据principalCla...

  • ios面试--某宝金融公司

    1,描述ios app的生命周期和状态1),Not running 未运行 程序没启动2),Inactive ...

  • iOS-应用程序的生命周期

    iOS 应用程序启动的过程中的一系列活动会影响应用的加载时间,为了获得更好的应用体验,对App应用程序的的生命周期...

  • iOS 程序 main函数之前发生什么

    主要参考:iOS程序启动->dyld加载->runtime初始化 过程iOS 程序 main 函数之前发生了什么 ...

  • iOS程序启动原理(下)

    接上篇 iOS程序启动原理(上) 下图是一个iOS程序启动的完整过程 main函数中执行了一个UIApplicat...

网友评论

    本文标题:iOS程序启动过程(生命周期)

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