iOS开发 - App程序启动原理
Info.plist和pch文件的作用
建立一个project后,会在Supporting files目录下看到一个“project名-Info.plist”的文件,该文件对project做一些执行期的配置。很重要,不能删除
在旧版本号Xcode创建的project中。这个配置文件的名字就叫“Info.plist”
项目中其它Plist文件不能带有“Info”这个字眼,不然会被错觉得是传说中很重要的“Info.plist”
项目中另一个InfoPlist.strings的文件,跟Info.plist文件的本地化相关
Info.plist
//常见属性(红色部分是用文本编辑器打开时看到的key)
Localiztion native development
//本地化相关
region(CFBundleDevelopmentRegion)
//程序安装后显示的名称,限制在10-12个字符,假设超出,将被显示缩写名称
Bundle display name(CFBundleDisplayName)
//app图标名称,一般为Icon.png
Icon file(CFBundleIconFile)
//应用程序的版本号号,每次往App Store上公布一个新版本号时,须要添加这个版本号号
Bundle version(CFBundleVersion)
//主storyboard文件的名称
Main storyboard file base name(NSMainStoryboardFile)
//项目的唯一标识,部署到真机时用到
Bundle identifier(CFBundleIdentifier)
pch文件
项目的Supporting files目录以下有个“project名-Prefix.pch”文件,也是一个头文件
pch头文件的内容能被项目中的其它全部源文件共享和訪问
一般在pch文件里定义一些全局的宏
在pch文件里加入下列预处理指令。然后在项目中使用Log(…)来输出日志信息,就能够在公布应用的时候。一次性将NSLog语句移除(在调试模式下,才有定义DEBUG)
#ifdef DEBUG
#define Log(...) NSLog(__VA_ARGS__)
#else
#define Log(...) /* */
#endif
UIApplication的常见使用
UIApplication对象是应用程序的象征
每个应用都有自己的UIApplication对象。并且是单例的
通过[UIApplication sharedApplication]能够获得这个单例对象
一个iOS程序启动后创建的第一个对象就是UIApplication对象
利用UIApplication对象,能进行一些应用级别的操作
//设置应用程序图标右上角的红色提醒数字
@property(nonatomic) NSInteger applicationIconBadgeNumber;
//设置联网指示器的可见性
@property(nonatomic,getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible;
假设想利用UIApplication来管理状态栏。首先得改动Info.plist的设置
iOS7中的状态栏
从iOS7開始,系统提供了2种管理状态栏的方式
通过UIViewController管理(每个UIViewController都能够拥有自己不同的状态栏)
通过UIApplication管理(一个应用程序的状态栏都由它统一管理)
在iOS7中。默认情况下。状态栏都是由UIViewController管理的,UIViewController实现下列方法就能够轻松管理状态栏的可见性和样式
//状态栏的样式
- (UIStatusBarStyle)preferredStatusBarStyle;
//状态栏的可见性
- (BOOL)prefersStatusBarHidden;
openURL:
UIApplication有个功能十分强大的openURL:方法
- (BOOL)openURL:(NSURL*)url;
openURL:方法的部
iOS开发 - App程序启动原理的更多相关文章
- iOS app 程序启动原理
iOS app 程序启动原理 Info.plist: 常见设置 建立一个工程后,会在Supporting files文件夹下看到一个"工程名-Info.plist"的文件, ...
- iOS APP程序启动原理
UIApplication 程序启动原理 一个应用程序运行就必须要有一个进程,一个进程至少要有一个线程,我们把这个线程叫做主线程,主线程开启之后会开启一个主运行循环,如果不开启一个运行循环,程序开启了 ...
- 详解 IOS 7.1 程序启动原理
程序都是从Main方法入口的 IOS 也不例外 int main(int argc,char * argv[]) { @autoreleasepool { return UIApplicationMa ...
- iOS程序启动原理---iOS-Apple苹果官方文档翻译
本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址 //转载请注明出处--本文永久链接:http://www.cnblogs.com/Ch ...
- [转]iOS hybrid App 的实现原理及性能监测
转自:http://www.cocoachina.com/ios/20151118/14270.html iOS hybrid App 的实现原理及性能监测 2015-11-18 11:39 编辑: ...
- iOS中的应用启动原理
iOS中的应用启动原理 来源: http://m.blog.csdn.net/article/details?id=50530090 http://m.warting.com/program/2016 ...
- iOS开发人员程序许可协议
请细致阅读以下的许可协议条款和条件之前下载或使用苹果软件. 这些条款和条件构成你和苹果之间的法律协议. iOS开发人员程序许可协议 目的 你想使用苹果软件(例如以下定义)来开发一个或多个应 ...
- iOS开发app启动原理及视图和控制器的函数调用顺序
main()函数是整个程序的入口,在程序启动之前,系统会调用exec()函数.在Unix中exec和system的不同在于,system是用shell来调用程序,相当于fork+exec+waitpi ...
- iOS开发——UI进阶篇(七)程序启动原理、打电话、发短信
一.Info.plist常见的设置 1.建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除 ...
随机推荐
- 【0门槛】PR稿的自我修养
本文来自网易云社区 作者:巩爽 十一过完,离2018年结束就只剩下85天啦!是不是2016年许下的2017年的梦想,在2018年还没有实现? 做过的项目仿佛都小有成就,可惜只是内部自嗨,想做域外宣传却 ...
- 用Go编写的本地文件服务器
本文来自网易云社区,转载务必请注明出处. 一.前言 一切问题的起源就是来自一个问题"为什么我打的jar包没有注解?",带着这个疑问查了一圈资料,原来问题主要是在没有将源码中的注释进 ...
- 大数据学习——scala入门程序
安装scala.msi https://blog.csdn.net/sinat_32867867/article/details/80305302 notepad++ object HelloScal ...
- Disqus 升级到3.0以上版本的评论同步问题
Disqus从2.*升级3.*时,Knowlege Base的文章不显示Disqus评论, 解决方法:在Disqus的Advanced Settings中勾选Render Comments JavaS ...
- conda管理包
清理 conda clean --lock --tarball --package (安装包) 安装或更新包 conda install numpy=1.9.3 conda update numpy= ...
- BZOJ 2242 [SDOI2011]计算器 ——EXGCD/快速幂/BSGS
三合一的题目. exgcd不解释,快速幂不解释. BSGS采用了一种不用写EXGCD的方法,写起来感觉好了很多. 比较坑,没给BSGS的样例(LAJI) #include <map> #i ...
- 刷题总结:最长公共字串(spoj1811)(后缀自动机)
题目: 就不贴了吧···如题: 题解: 后缀自动机模版题:没啥好说的···· 代码: #include<iostream> #include<cstdio> #include& ...
- Snmp的学习总结(一)
摘自:http://blog.csdn.net/shanzhizi/article/details/11606767 目录(?)[-] SNMP的5种协议数据单元 SNMP的运行过程 11 Get ...
- hdu 4819 Mosaic 树套树 模板
The God of sheep decides to pixelate some pictures (i.e., change them into pictures with mosaic). He ...
- bzoj 5055: 膜法师 树状数组+离散
先枚举每一个数,看它前面有几个比它小,算一下和为sum1,后面有几个比它大,算一下和为sum2,对答案的贡献为A[i]*sum1*sum2. 离散化后,树状数组就可以了. 就是倒着一边,顺着一边,统计 ...