IOS项目中的 Prefix.pch 和 Info.plist

来源:互联网 发布:hp扫描软件 编辑:程序博客网 时间:2024/05/19 01:30

打开一个项目,我们会看到4个主文件夹。

Test文件夹主要是单元测试相关,不做介绍
Frameworks文件夹中存放的是项目依赖的一些框架
Products文件夹主要是MAC开发中使用,iOS开发不用理会。
这里主要介绍与工程同名的文件夹内的常见的文件。

1,Prefix.pch

pch文件的作用:
1.存放一些全局的宏(整个项目中都用得上的宏)
2.用来包含一些全部的头文件(整个项目中都用得上的头文件)
3.能自动打开或者关闭日志输出功能

4,Prefix.pch 就是“precompiled header” ,也就是预编译文件!

5,实际应用中,我们在Prefix.pch中定义变量或者宏;这样,我们在整个项目中都可以使用在Prefix.pch文件中的变量,或者是宏。

6,如果在一个比较大的项目中,有几个经常用到的头文件,可以把这十几个头文件一块放到一个.h文件中,用的时候只导入这一个就行了。

7,一些经常需要用到的宏定义,可以写到那个pch文件中,这样使用的时候不需要再次导入头文件,方便~

8, 手动在工程中添加pch文件的方法


2,iOS工程中的info.plist文件


元信息简介
    为了提供更好的用户体验,IOS 和 OS X的每个app或bundle都依赖于特殊的元信息(meta Information).
    元信息有多种用途,包括
直接向用户展示信息
系统内部用来标识你的app或其支持的文档类型
系统框架用来辅助app的加载
      通过一种特殊的信息属性列表文件,app向系统提供自己的元信息。 
      属性列表可用来构建任意数据,这些数据在运行时是可访问的。每个属性列表都包含了一个bundle的配置信息。文件中的keys和values描述了许多要应用于该bundle的行为以及配置选项。Xcode通常会为每个基于bundle的工程自动创建该属性列表文件,并且提供许多合适的keys以及其对应的默认的values。之后可以编辑该文件,添加任何工程所需的keys和values,或修改现有的keys所对应的values。 

Info.plist文件 
      每个application都使用Info.plist文件来存储以上的元信息,从名称上也可以判断出Info.plist就是以上提到的“属性列表”。IOS用Info.plist来决定bundle所显示的icon,当前app支持打开的文档类型,等等其它的信息。正如以上所提到的,Info.plist本身是一种结构化的文本文件,它包含了一些重要的配置信息。Info.plist文件多数情况下是以UTF-8进行编码,并且其内部的配置内容其实是以XML格式进行组织。XML的根节点是一个词典(dictionary),包含描述bundle各个方面的keys和values。系统读取该文件,并获取app的配置信息。 
      按照约定,属性列表文件的名称就是Info.plist。该文件名称时大小写敏感的,并且首字母必须是大写的"I".在IOS的apps中,当新工程创建完毕后,会自动创建一个名为<project>-Info.plist文件,该文件位于bundle目录(Supporting Files)的顶部,在工程构建时,该文件用以生成Info.plist文件,之后添加至bundle中。

我们建立一个工程后,会在Supporting files下面看到一个"工程名-Info.plist"的文件,这个是对工程做一些运行期配置的文件,很重要,不能删除。

如果你使用文本编辑器打开这个文件,你会发现这是一个XML格式的文本文件,一般我们不用文本编辑器直接编辑这个文件,而是通过Xcode编辑。


下面是对这里可能出现的字段的解释:
Localiztion native development region --- CFBundleDevelopmentRegion 本地化相关,如果用户所在地没有相应的语言资源,则用这个key的value来作为默认.
Bundle display name --- CFBundleDisplayName 设置程序安装后显示的名称。应用程序名称限制在10-12个字符,如果超出,将被显示缩写名称。
Executaule file -- CFBundleExecutable 程序安装包的名称
Icon file --- CFBundleIconFile 应用程序图标名称,一般为icon.png
Bundle identifier --- CFBundleIdentifier 该束的唯一标识字符串,该字符串的格式类似com.yourcompany.yourapp,如果使用模拟器跑你的应用,这个字段没有用处,如果你需要把你的应用部署到设备上,你必须生成一个证书,而在生成证书的时候,在apple的网站上需要增加相应的app IDs.这里有一个字段Bundle identifier,如果这个Bundle identifier是一个完整字符串,那么文件中的这个字段必须和后者完全相同,如果app IDs中的字段含有通配符*,那么文件中的字符串必须符合后者的描述。
InfoDictionary version --- CFBundleInfoDictionaryVersion  Info.plist格式的版本信息
Bundle OS Type code -- CFBundlePackageType:用来标识束类型的四个字母长的代码,(网上找的,不解??)
Bundle versions string, short --- CFBundleShortVersionString 面向用户市场的束的版本字符串,(网上找的,不解??)
Bundle creator OS Type code --- CFBundleSignature:用来标识创建者的四个字母长的代码,(网上找的,不解??)
Bundle version --- CFBundleVersion 应用程序版本号,每次部署应用程序的一个新版本时,将会增加这个编号,在app store上用的。
Application require iPhone environment -- LSRequiresIPhoneOS:用于指示程序包是否只能运行在iPhone OS 系统上。Xcode自动加入这个键,并将它的值设置为true。您不应该改变这个键的值。
Main nib file base name -- NSMainNibFile 这是一个字符串,指定应用程序主nib文件的名称。如果您希望使用其它的nib文件(而不是Xcode为工程创建的缺省文件)作为主nib文件,可以将该nib文件名关联到这个键上。nib文件名不应该包含.nib扩展名。这个字段可以删除,你可以参考我前面的文章,main函数研究。
supported interface orientations -- UISupportedInterfaceOrientations 程序默认支持的方向。



0 0
原创粉丝点击