博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS程序启动原理
阅读量:6578 次
发布时间:2019-06-24

本文共 711 字,大约阅读时间需要 2 分钟。

关于iOS的启动过程,之前也是一知半解,查了一些资料,总结如下。

 

首先,放一张流程图。摘自网络图片(侵权删)

 

1.main函数

2.UIApplicationMain

* 创建UIApplication对象

* 创建UIApplication的delegate对象

 

--------没有storyboard--------- 

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

* 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法

* 在application:didFinishLaunchingWithOptions:中代码创建UIWindow

* 创建和设置UIWindow的rootViewController

* 显示窗口

 

--------有storyboard--------- 

3.根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard)

* sb创建UIWindow

* 创建和设置UIWindow的rootViewController

* 显示窗口

 

这里可能有个误区:

不管设不设置Main Interface,代码都会走application:didFinishLaunchingWithOptions方法,只是设置uiwindow的方式有区别而已。

1、有设置,系统会直接取plist设置的界面控制器。

2、不设置,系统会在application:didFinishLaunchingWithOptions这里查找uiwindow。

 

转载地址:http://smyno.baihongyu.com/

你可能感兴趣的文章
【深度学习系列】用PaddlePaddle和Tensorflow实现经典CNN网络GoogLeNet
查看>>
(转)如何动手打造属于自己的智能家居
查看>>
重载、重写、覆盖
查看>>
极简生活法则—读书笔记
查看>>
使用ASP.NET AJAX异步调用Web Service和页面中的类方法(10):服务器端和客户端数据类型的自动转换:以XML方式序列化数据、小结...
查看>>
深入理解JavaScript系列(11):执行上下文(Execution Contexts)
查看>>
[zz]Ubuntu下设置自己的“超级计算机集群”
查看>>
[转]Asp.net中GridView使用详解
查看>>
人防工程空调设计规范
查看>>
sql server 2005 通过代理定时备份数据库
查看>>
Android 实现全屏 无标题栏
查看>>
Android的横竖屏切换
查看>>
关于linux上cron服务的python封装工具
查看>>
MFC学习之Radio---MFC Radio按钮组的使用例子
查看>>
十五套专为开发人员打造的PHP资源库
查看>>
Elasticsearch 文件目录解释
查看>>
AngularJS 学习笔记值post传值
查看>>
深入理解display属性
查看>>
Android下基于SDL的位图渲染(二)理论篇
查看>>
NVIDIA® Quadro® 四路缓冲 3D立体方案
查看>>