IOS启动顺序
一.UIApplicationMain的执行步骤
1.创建一个UIApplication对象,一个程序对应一个UIApplication对象(单例),UIApplication对象是程序的象征
2.接下来会根据第4个参数创建一个UIApplication的delegate对象
3.开启一个消息循环(不断地监听地一些系统事件)
4.监听到相应的事件后,就会给代理发送相应的消息
* 当程序启动完毕,就会发送application:didFinishLaunchingWithOptions:消息
*当程序进入后台,就会发送applicationDidEnterBackground:消息
....
二.UIApplication
1.设置图标数字
app.applicationIconBadgeNumber =10;
2.设置显示联网状态
app.networkActivityIndicatorVisible = YES;
3.打开一个URL (打电话,打开网址,发短信,发邮件)
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
[app openURL:url];
4.隐藏状态栏
application.statusBarHidden = NO;
三.常见文件
1.*-Info.plist 文件
1>项目中最主要的文件,描述了软件名称.软件版本,软件唯一标识
2>常见设置
*软件名称 --Bundle display name -- CFBundleDisplayName
*软件版本号 -- Bundle Version === CFBunleVersion
*软件的唯一标识-- Bundle identifier -- CFBundleIdentifier
1.0
2.*-Prefix.pch
1> 该文件中的内容会被项目中其他所有文件所共享
2>用来存全局性的一些宏定义,#import语句
3>控件日志输出
/*
如果软件处于调试状态,系统会默认定义一个叫做DEBUG的宏;
如果软件处于发布打包状态,系统就不会定义DEBUG这个宏
*/
#ifdef DEBUG
//调试状态:将MJLog替换成NSLog
#define MJLog(...) NSLog(__VA_ARGS__)
#else
//发布状态:将MJLog替换成空
#define MJLog(...) //fsdfsdfdsfds
#endif
3. Default.png 320 X 480
1>程序在启动过程中会全屏显示叫做Default.png 的图片
2>可以有多个版本
Default.png 320 X 480
Default@2x.png 640 X 960
Default-568h@2x.png 640 X 1136
4.Icon.png
1>软件图标
2>苹果官方文档搜索"app icon" --> App Icons On iPad and Iphone
四\程序的完整启动过程(控件器的View的显示过程)
1.点击程序图标
2.执行main函数
3.执行UIApplicationMain函数
4.创建UIApplication对象.UIApplication的delegate对象
5.开启事件循环监听系统事件
6.程序加载完毕后调用delegate对象的application:didFinishLaunchingWithOptions:方法
1>创建窗口对象
self.window = [UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
2>创建控件器对象
self.viewController = [[MJViewController alloc] initWithNibName:@"MJViewController" bundle:nil]
3> 设置窗口的根控件器
self.window.rootViewController = self.viewController;
4>让窗口成为主窗口,并且可见
[self.window makeKeyAndVisible];
UIApplication\AppDelegate\UIWindow\UIViewController
6.自定义容器
1.加载ViewController.xib文件
2.创建Objects下面的所有对象
UIView *myview = [[UIView alloc]init];
myView.backgroundColor=[UIColor dfsfd];
myview.frame = CGRectMake(0,20,320,460);
....
UIButton *btn ...
[myview addSubview:btn];
3.传入ViewController对象作为xib文件的owner
vc.view = myview;
IOS启动顺序的更多相关文章
- linux init 启动顺序
redhat init大致启动过程 第一个运行的程序是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作.比如在设定了运行等级 “:id:3:initdefa ...
- Openwrt笔记-IPv6与启动顺序
之前使用了nat6方案和x3c8021x实现了校园网上网和IPv6连接:但实际使用时经常出现莫名奇妙的问题.IPv6状态要么是无法连接网络,要么是无法连接Internet:经过研究,发现大概是自启动项 ...
- [CrunchBang]修改win+ubuntu 双 系统菜单的 启动顺序 引导
说到启动就不得不说GRUB,Linux下大名鼎鼎的启动管理工具(曾经的LILO已经风光不再),当然现在已经是GRUB2了,GRUB2和GRUB最重要的区别就是,GRUB存放系统启动信息的文件为/boo ...
- linux服务开机启动顺序
今天遇到了一个问题,我们写了一个服务脚本A,该服务需要优先于mysql启动.脚本是从其他地方拷来的模板,前面的默认配置没改,只是实现了自己的功能.写完,chkconfig A on,reboot,启动 ...
- iOS启动图和开屏广告图,类似网易
iOS启动图和开屏广告图,类似网易 启动图是在iOS开发过程中必不可少的一个部分,很多app在启动图之后会有一张自定义的开屏广告图,点击该广告图可以跳转到广告图对应的页面.今天呢,和大家分享一下如何添 ...
- 设置U盘为第一启动顺序
本文转载:http://u.diannaodian.com/Article/1004.html 盘安装系统的首要步骤就是设置U盘为第一启动顺序.下面电脑店官网就来说说到底如何来设置U盘启动顺序吧. ...
- LINUX启动顺序
Linux 启动顺序: 1. BIOS自检 (服务器硬件启动的第一步,坑定的啦) 2. 运行系统内核并检测硬件(这个是看系统了,redhat等相关版本是通过/boot/vm进行启动 vmlinuz) ...
- web容器启动顺序
web容器启动顺序: 第一:context-param 第二:Listerer 第三:Filter 第四:servlet
- 第一章之s5pv210启动顺序
我所使用的开发板是:友善之臂smart210,cpu为s5pv210.u-boot版本是:u-boot-2012-10 1,首先在u-boot中配置相对应的开发板的配置文件 #make s5p_gon ...
随机推荐
- git 常用的简单命令
git add . 会把当前目录中所有有改动的文件(不包括.gitignore中要忽略的文件)都添加到git缓冲区以待提交 git add * 会把当前目录中所有有改动的文件(包括.gitignore ...
- JavaScript - 事件流
事件流 事件冒泡就是事件沿DOM树向上传播,在没一级节点上都会发生,直至传播到document对象. 事件捕获正好相反,但是老版本的浏览器不支持,因此很少有人使用事件捕获. 事件处理程序 HTMl 事 ...
- 开心网的账号登录及api操作
.kaixin.php <?php /** * PHP Library for kaixin001.com * * @author */ class kaixinPHP { function _ ...
- 关于socket——SO_SNDBUF and SO_RECVBUF
转自:http://blog.csdn.net/wf1982/article/details/38871521 参见 http://stackoverflow.com/questions/425741 ...
- [CentOS]安装软件:/lib/ld-linux.so.2: bad ELF interpreter解决
转自:http://blog.csdn.net/wanglei2258/article/details/24961233 [CentOS]安装软件:/lib/ld-linux.so.2: bad EL ...
- web开发的步骤
前端知道是浏览器呈现的部分,相对于前端,后台你可以理解为服务器端专门处理.读取.存储数据库数据的部分. 因为网站是基于B\S架构,即浏览器---服务端架构,就程序来讲,可笼统划分为前端程序和服务器端程 ...
- vector 之删除元素
删除指定位置的元素 删除vector中第5个位置的元素 vector<int> vec; //执行vector初始化操作 vector<; //获取第五个元素的iterator ve ...
- javascript 获取url参数值
function getvl(name) { var reg = new RegExp("(^|\\?|&)"+ name +"=([^&]*)(\\s| ...
- BZOJ 1588: [HNOI2002]营业额统计 双向链表 / splay / treap
1588: [HNOI2002]营业额统计 Description 营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况. Tiger ...
- Fragment实现兼容手机和平板
Android手机的设置界面,点击一下Sound,可以跳转到声音设置界面,如下面两张图所示: 然后再来看一下Android Pad的设置界面,主设置页面和声音设置页面都是在一个 ...