iOS开发之info.pist文件和.pch文件
iOS开发之info.pist文件和.pch文件
如果你是iOS开发初学者,不用过多的关注项目中各个文件的作用。因为iOS开发的学习路线起点不在这里,这些文件只会给你学习带来困扰。
打开一个项目,我们会看到4个主文件夹。
Test文件夹主要是单元测试相关,不做介绍
Frameworks文件夹中存放的是项目依赖的一些框架
Products文件夹主要是MAC开发中使用,iOS开发不用理会。
这里主要介绍与工程同名的文件夹内的常见的文件。
1. info.plist文件
建立一个工程后,会在Supporting files文件夹下看到一个“工程名-Info.plist”的文件,该文件对工程做一些运行期的配置,非常重要,不能删除

• 在旧版本Xcode创建的工程中,这个配置文件的名字就叫“Info.plist”
• 项目中其他Plist文件不能带有“Info”这个字眼,不然会被错认为是传说中非常重要的“Info.plist”。同样,若你新接触一个项目,想要看它的配置信息,可以找带info字眼的plist文件
• 项目中还有一个InfoPlist.strings的文件,跟Info.plist文件的本地化相关
打开info.plist文件如下图:

我们可以看到这是一个字典,字典中存放的是很多的健值对。我们可以在这里添加一些项目的配置。下面介绍一些比较重要的我们经常用到的一些属性:
常见属性(红色部分是用文本编辑器打开时看到的key)
Localiztion native development region(CFBundleDevelopmentRegion)-本地化相关
Bundle display name(CFBundleDisplayName)-程序安装后显示的名称,限制在10-12个字符,如果超出,将被显示缩写名称。默认显示的是工程名称,如果你修改了这个值,有两点需要注意:
1. 卸载之前已经部署的应用
2. 清除Xcode的缓存,从新部署
不然app的名称修改不会成功。
Icon file(CFBundleIconFile)-app图标名称,一般为Icon.png
Bundle version(CFBundleVersion)-应用程序的内部版本号,用于记录开发版本
Bundle version string,short(CFBundleShortVersionString)应用程序的发布版本号,在App Store更新应用要保证目前版本大于上一版本。
Main storyboard file base name(NSMainStoryboardFile)-主storyboard文件的名称,在项目的工程配置可以修改Main Inerface属性也可以设置主storyboard文件,并且修改后info.plist文件中的信息会自动修改。
Bundle identifier(CFBundleIdentifier)-项目的唯一标识,部署到真机时用到,这是与其他app区分的唯一标识,若此标识相同,后部署的app将覆盖之前部署的app。
实际上plist文件本质上就是一种特殊的XML文件。
2. pch文件
项目的Supporting files文件夹下面有个“工程名-Prefix.pch”文件,也是一个头文件,pch头文件的内容能被项目中的其他所有源文件共享和访问。
pch文件的作用:
1.存放一些全局的宏(整个项目中都用得上的宏)
2.用来包含一些全部的头文件(整个项目中都用得上的头文件)
3.能自动打开或者关闭日志输出功能
自动打开或者关闭日志输出功能的代码遵循以下格式,因为NSlog()是OC中的方法,所以只有后缀为.m或.mm文件才用得着。
#ifdef __OBJC__
//你的代码
#endif
如下:
#ifdef __OBJC__ #import <UIKit/UIKit.h> #import <Foundation/Foundation.h> #import "MJPerson.h" #ifdef DEBUG // 调试阶段,DEBUG的宏是系统在调试阶段自动添加的,所以只要判断有没有定义过DEBUG这个宏就可以在发布阶段自动的去掉项目中的所有的日志输出语句。 #define CLLog(...) NSLog(__VA_ARGS__) #else // 发布阶段 #define CLLog(...) #endif
iOS开发之info.pist文件和.pch文件的更多相关文章
- iOS开发之Xcode6 之手动添加Pch预编译文件
参考文档 http://blog.csdn.net/crazyzhang1990/article/details/44243343 红色部分为本人自己补充注意事项 在Xcode6之前,创建一个新工程x ...
- ios开发之xcode6中如何添加pch全局引用文件
xcode6中去掉了默认添加pch文件,这就需要我们自己手动添加pch文件了,添加pch文件是为了一些琐碎的头文件引用,加快编译速度! 下面就说下该如何手动添加pch文件: 1.添加一个文件,在oth ...
- iOS开发之 Xcode6 添加xib文件,去掉storyboard的hello world应用
iOS开发之 Xcode6.1创建仅xib文件,无storyboard的hello world应用 由于Xcode6之后,默认创建storyboard而非xib文件,而作为初学,了解xib的加载原理 ...
- iOS开发之SceneKit框架--加载多个模型.dae/.scn文件
1.通过SCNGeometry或子类SCNParametricGeometry创建 相关链接:iOS开发之SceneKit框架--SCNGeometry.h iOS开发之SceneKit框架--SCN ...
- iOS开发之MVVM在项目中的应用
今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...
- iOS开发之loadView、viewDidLoad及viewDidUnload的关系
iOS开发之loadView.viewDidLoad及viewDidUnload的关系 iOS开发之loadView.viewDidLoad及viewDidUnload的关系 标题中所说的3个方 ...
- iOS开发之Xcode常用调试技巧总结
转载自:iOS开发之Xcode常用调试技巧总结 最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题.平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼.Debug的技巧很多,比如最 ...
- 李洪强iOS开发之Block和协议
李洪强iOS开发之Block和协议 OC语言BLOCK和协议 一.BOLCK (一)简介 BLOCK是什么?苹果推荐的类型,效率高,在运行中保存代码.用来封装和保存代码,有点像函数,BLOCK可以在任 ...
- iOS 开发之 GCD 基础
header{font-size:1em;padding-top:1.5em;padding-bottom:1.5em} .markdown-body{overflow:hidden} .markdo ...
随机推荐
- RH6030 单通道触摸感应开关
1.概述: RH6030 是一款单通道电容式触摸感应控制开关IC,可以替代传统的机械式开关. 该 IC 采用CMOS 工艺制造,结构简单,性能稳定.IC 可通过外部引脚配置成多种工作模式,可广泛应用于 ...
- Struts2的注解功能
我们知道通常情况下,Struts2是通过struts.xml配置的.但是随着系统规模的加大我们需要配置的文件会比较大,虽然我们可以根据不同的系统功能将不同模块的配置文件单独书写,然后通过<inc ...
- java敏感词过滤
敏感词过滤在网站开发必不可少.一般用DFA,这种比较好的算法实现的. 参考链接:http://cmsblogs.com/?p=1031 一个比较好的代码实现: import java.io.IOExc ...
- 【Linux】鸟哥的Linux私房菜基础学习篇整理(八)
1. useradd [-u UID] [-g 初始用户组] [-G 次要用户组] [-mM]\ [-c 说明栏] [-d 主文件夹绝对路径] [-r] [-s shell] 用户账号名:新增用户 ...
- 【转】Jollen 的 Android 教學,#12: 如何建立選單 Menu
原文网址:http://www.jollen.org/blog/2009/06/jollen-android-programming-12.html Android應用程式的UI可以使用XML來定義, ...
- 【转】android颜色对应的xml配置值
原文网址:http://www.cnblogs.com/etgyd/archive/2011/04/02/2003778.html android颜色对应的xml配置值 <?xml versio ...
- [Locked] Count Univalue Subtrees
Count Univalue Subtrees Given a binary tree, count the number of uni-value subtrees. A Uni-value sub ...
- poj 3903 最长上升子序列 Stock Exchange
题目链接:http://poj.org/problem?id=3903 #include <cstdio> #include <cmath> #include <algo ...
- [置顶] SpecDD系列:6个确保您执行“充分”QA测试的技巧
确保团队执行 “足够的” 测试覆盖面是非常困难的,尤其是对敏捷开发团队来说.对于初学者而言,一个开发Sprint中要完成多少的质量保证工作才够呢?我们知道,敏捷的标准是在开发Sprint结束的时候要完 ...
- Google Guava官方教程(中文版)地址
Google Guava官方教程(中文版) http://ifeve.com/google-guava/ 瓜娃啊瓜娃