工程文件目录及程序的启动原理
来源:互联网 发布:域名一般多少钱 编辑:程序博客网 时间:2024/06/05 00:58
一、Info.plist和pch文件的作用
建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除
常见属性(括号内看到的为key)
1、Localiztion native development
region(CFBundleDevelopmentRegion)-本地化相关
2、Bundle display name(CFBundleDisplayName)-程序安装后显示的名称,限制在10-12个字符,如果超出,将被显示缩写名称
3、Icon file(CFBundleIconFile)-app图标名称,一般为Icon.png
4、Bundle version(CFBundleVersion)-应用程序的版本号,每次往App Store上发布一个新版本时,需要增加这个版本号
5、Main storyboard file base name(NSMainStoryboardFile)-主storyboard文件的名称
6、Bundle identifier(CFBundleIdentifier)-项目的唯一标识,部署到真机时用到
二、pch文件
项目的Supporting files文件夹下面有个“工程名-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对象,能进行一些应用级别的操作
UIApplication有个功能十分强大的openURL:方法
- (BOOL)openURL:(NSURL*)url;
openURL:方法的部分功能有
打电话
UIApplication *app = [UIApplication sharedApplication];
[app openURL:[NSURL URLWithString:@”tel://10086”]];
发短信
[app openURL:[NSURL URLWithString:@”sms://10086”]];
发邮件
[app openURL:[NSURL URLWithString:@”mailto://12345@qq.com”]];
打开一个网页资源
[app openURL:[NSURL URLWithString:@”http://www.apple.com.cn“]];
打开其他app程序
所有的移动操作系统都有个致命的缺点:app很容易受到打扰。比如一个来电或者锁屏会导致app进入后台甚至被终止
还有很多其它类似的情况会导致app受到干扰,在app受到干扰时,会产生一些系统事件,这时UIApplication会通知它的delegate对象,让delegate代理来处理这些系统事件
delegate可处理的事件包括:
应用程序的生命周期事件(如程序启动和关闭)
系统事件(如来电)
内存警告
……
UIApplication的delegate方法
// app接收到内存警告时调用
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application;
// app进入后台时调用(比如按了home键)
- (void)applicationDidEnterBackground:(UIApplication *)application;
// app启动完毕时调用
- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions;
启动过程:
程序加载完毕->application:
didFinishLaunchingWithOptions:
程序获取焦点->applicationDidBecomeActive
程序进入后台->applicationDidEnterBackground
程序失去焦点->applicationWillResignActive
程序从后台回到前台
->applicationWillEnterForeground:
内存警告,可能要终止程序->applicationDidReceiveMemoryWarning:
程序即将退出->applicationWillTerminate
启动流程:
打开程序->执行main函数->执行UIApplicationMain函数
->初始化UIApplication(创建和设置代理对象,开启事件循环)
->监听系统事件 | 结束程序
- 工程文件目录及程序的启动原理
- iOS的常见文件及程序的启动原理
- iOS的常见文件及程序的启动原理
- iOS程序的启动过程及原理
- 清除工程目录下多余的文件及文件夹
- apache服务器的启动及安装目录文件用途
- iOS程序的完整启动过程及原理
- eclipse中启动Tomcat发布工程,工程的发布目录
- iOS程序启动原理及过程
- android的工程目录及相关知识
- iOS程序的启动原理
- 《APP程序的启动原理》
- day10-程序的启动原理
- Go工程目录介绍及go程序编译运行介绍
- 【Linux】多文件标准工程目录的Makefile编写及通用模板
- VC6工程目录下的文件说明
- VC6工程目录下的文件说明
- Eclipse工程目录下建立bat文件运行Java程序
- 先尝试后决策
- 多点加锁实现负载均衡机制
- 类的继承
- cocos2d-x 3.6运行cocos run出现Ndk build failed解决办法
- Win7*64+androidstudio ndk-build.cmd finished with non-zero exit value 1 问题原因
- 工程文件目录及程序的启动原理
- 慕课玩儿转swift笔记02-字符串
- 生成5位序列号
- HDU1276士兵队列
- Android--文件监控FileObserver
- 用指针正确的操纵动态数组与正确用delete释放内存的方法
- java 子类重写父类的方法应注意的问题
- poj 1324 Holedox Moving(bfs+状态压缩)
- 黑马程序员------异常小结