iOS程序启动原理(简单)
1.执行main -> 执行UIApplicationMain
- UIApplicationMain底层实现
- 1.创建UIApplication对象
- 2.创建UIApplication代理对象
- 3.开启主要事件循环,保证程序一直运行,开始处理事件
- 4.解析info.plist,判断下有没有指定main.storyboard
3.指定main.storyboard就会加载
- 1.创建窗口(一个程序要想显示内容,必须有窗口)
- 2.加载main.storyboard(UIStoryboard),创建storyboard描述的控制器(箭头指向的控制器)
- 3.设置窗口的根控制器
- 4.显示窗口
4.UIApplication对象
- 单例:整个app下只分配一次内存
- 获取:shareApplication
- 作用:1.设置提醒数字 2.设置联网状态 3.设置状态栏 4.打电话,打开网页
5.UIApplication代理
- 代理:自己不想做的事情,就搞个代理帮我做
- 作用:1.监听应用程序生命周期方法 3.内存警告
6.窗口
- 作用:一个程序要想显示内容,必须有窗口
- 窗口创建方式:1.UIStoryboard 2.代码
- 窗口通过代码创建注意
- 1.必须要强引用
- 2.窗口要有尺寸
- 3.必须设置窗口的根控制器
- 窗口:键盘.状态栏
- 窗口层级 : alert > statusBar > normal
1.执行main函数 -> UIApplicationMain
UIApplicationMain底层实现
1.创建UIApplication对象
2.创建UIApplication代理对象,设置UIApplication代理
3.开启主要事件循环,目的:让程序一直运行,可以处理事件
4.解析info.plist,判断下有没有指定main.stroyboard
int main(int argc, char * argv[]) {
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Info.plist" ofType:nil];
NSDictionary *dcit = [NSDictionary dictionaryWithContentsOfFile:filePath];
id objc = dcit[@"UIMainStoryboardFile"];
@autoreleasepool {
第三个参数:UIApplication类或者子类类型字符串,类型不能乱穿
第四个参数:UIApplication代理类型字符串类型不能乱穿
NSStringFromClass([AppDelegate class])
NSStringFromClass:把类名转换成字符串
return UIApplicationMain(argc, argv, @"UIApplication", NSStringFromClass([AppDelegate class]));
如果直接写字符串,弊端:有可能写错,没有提示
NSStringFromClass:有提示,肯定不会写错,编译时期就会检查错误
}
}
iOS程序启动原理(简单)的更多相关文章
- iOS程序启动原理---iOS-Apple苹果官方文档翻译
本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址 //转载请注明出处--本文永久链接:http://www.cnblogs.com/Ch ...
- IOS程序启动原理
1.Info.plist 建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除 常见属性(红色 ...
- iOS 程序启动原理
很多工作一段时间的iOS程序员,总是每天沉浸在代码里,大家总是按照xcode的规定生成项目,然后就开始码代码了,但是大家知道app背后的启动过程吗?当点击程序图标启动程序开始到退出,程序在运行过程中到 ...
- iOS基础 - iOS程序启动原理
一.UIApplicationMain 在main.m的main函数中执行了UIApplicationMain这个方法,这是ios程序的入口点 int UIApplicationMain(int ar ...
- iOS 程序启动流程
iOS程序启动原理 技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong iOS应用程序运行 ...
- iOS app 程序启动原理
iOS app 程序启动原理 Info.plist: 常见设置 建立一个工程后,会在Supporting files文件夹下看到一个"工程名-Info.plist"的文件, ...
- iOS开发——UI进阶篇(七)程序启动原理、打电话、发短信
一.Info.plist常见的设置 1.建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除 ...
- iOS程序启动的过程及原理
iOS程序启动的过程及原理 文字部分 先执行main函数,main内部会调用UIApplicationMain函数 UIApplicationMain函数里面做了什么事情??? 1> 创建UIA ...
- iOS APP程序启动原理
UIApplication 程序启动原理 一个应用程序运行就必须要有一个进程,一个进程至少要有一个线程,我们把这个线程叫做主线程,主线程开启之后会开启一个主运行循环,如果不开启一个运行循环,程序开启了 ...
随机推荐
- 后缀数组da3模板
在做poj2406的时候...按论文给的rmq模板会超内存...然后网上找了http://blog.csdn.net/libin56842/article/details/46310425这位大爷的d ...
- Performing a full database disaster recovery with RMAN
Performing a full database disaster recovery with RMAN1. Make the RMAN backup set pieces available.2 ...
- zTouch-移动端触屏开发利器(zepto touch扩展)
* Zepto.js v1.0.1 touch extend (Zepto.js v1.0.1 的swipe touch扩展)js-处理手机移动端web触屏手势动作. Zepto.js v1.0.1版 ...
- UVA 1153 KEEP THE CUSTOMER SATISFIED
题意: 钢铁公司有N个客户的订单,每个订单有一个产量q(生产时间刚好也等于q)和订单完成截止时间.公司要求完成尽量多的订单. 分析: 先按截止时间d排序,然后维护一个已经选好的订单的优先队列,如果当前 ...
- UVA 1603 Square Destroyer
题意: 给定一个火柴棒拼成的方格阵,然后去掉一些火柴棒,问至少再去掉几根火柴棒能够让图中一个正方形都没有. 思路: 1. 由于题目中给定了 n 的范围,2 * n * (n + 1) <= 60 ...
- DW 图片不显示的情况 ———网页只显示字不显示图片的情况 目录下的图片名被改动不显示图片的情况
例子1-- 酒瓶子 alt 在不现实图片的情况下显示汉字 图文效果展示 alt 1************************* 语句---- <body> < ...
- 前端开发的常用js库
验证: jQuery formValidator,Validform; 提示框: artDialog, lhgDialog,jBox,jQuery textbox plugin 文件批量上传:uplo ...
- Hibernate工作原理及为什么要用?(转http://www.cnblogs.com/javaNewegg/archive/2011/08/28/2156521.html)
原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件2.由hibernate.cfg.xml中的<mapping resou ...
- file_get_contents()的另一种使用方法
今天在网上看到一篇挺不错的文章,拿过来保存学习一下.本文源地址为:http://www.kuitao8.com/20140727/2867.shtml $data = file_get_content ...
- PHP编程中10个最常见的错误
PHP是一种非常流行的开源服务器端脚本语言,你在万维网看到的大多数网站都是使用php开发的.本篇经将为大家介绍PHP开发中10个最常见的问题,希望能够对朋友有所帮助. 错误1:foreach循环后留下 ...