【原】iOS学习之PCH文件
1. PCH文件概述
PCH文件是一种预编译头文件(一般扩展名为.PCH),是把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里。这些预先编译好的代码可以是任何的C/C++代码--甚至可以是inline函数,只它们在整个工程中是较为稳定的,即在工程开发过程中不会经常被修改的代码。
在 Xcode6.0 之前的版本中,生成的 Single View Application 工程中自动存在PCH文件,Xcode6.0 之后就去掉了pch,为了一些琐碎的头文件引用,加快了编译速度!
如图为 Xcode5 的工程截图:
2. PCH文件的创建(Xcode6.0 之前的版本)
在工程中 command + N —> iOS中的 Other —> PCH File —> Next —> Create
PCH文件是提前编译的,所以我们要告诉工程。具体操作如下图:
当然如果想要填写的话,可以使用 $(SRCROOT) 来获取你工程文件的路径,完整可以写为:$(SRCROOT)/PCHTest/header.pch
3. PCH文件的作用
存放一些公用的宏
存放一些公用的头文件,一般开发中方工具类的头文件或者分类头文件等。
管理日志输出
自定义Log: #define ZFLog(…) NSLog(__VA__ARGS__)
宏里面的可变参数:...
函数中的可变参数:__VA__ARGS__
日志输出非常耗性能,一般发布的时候不需要日志文件,只有调试的时候才需要。
在发布上线的时候,我们有两种简单的方式来消除在工程中所有的日志输出
① 我们可以直接注释后面的 #define ZFLog(…) // NSLog(__VA__ARGS__),就可以消除在工程中所有的日志输出
② 还可以通过一个宏进行条件编译,在调试阶段,xcode会自动定义一个DEBUG宏,利用这个宏,就能进行条件编译。
#ifdef DEBUG // 调试阶段
#define ZFLog(…) NSLog(__VA__ARGS__)
#else // 发布阶段
#define ZFLog(…)
#endif
4. PCH文件使用注意事项
#ifdef __OBJC__ // OC文件的正确写法
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif #import "ZFTool.h" // 写在这里可能报错,所以不要写在这里
【原】iOS学习之PCH文件的更多相关文章
- iOS开发中.pch 文件的使用及其相关工程设置
.pch文件 也是一个头文件,pch头文件的内容能被项目中的其他所有源文件共享和访问.是一个预编译文件. 首先说一下pch的作用: 1.存放一些全局的宏(整个项目中都用得上的宏) 2.用来包含一些全部 ...
- iOS开发之pch文件
项目的Supporting files文件夹下面有个“工程名-Prefix.pch”文件,也是一个头文件 pch头文件的内容能被项目中的其他所有源文件共享和访问 一般在pch文件中定义一些全局的宏 在 ...
- iOS开发之.pch文件初识
pch全称是“precompiled header”,即预编译头文件,自Xcode6诞生之日起,便在Supporting Files文件下消失多年.说起苹果对pch的爱恨情仇,其分析pch的作用便不言 ...
- 李洪强iOS开发之-PCH文件的配置
pch 可以用来存储共享信息,比如设备屏幕的宽度,高度.版本号等等 公用信息 Xcode 老版本会自动为我们创建pch文件,新版本开始不自动创建了,如果需要使用可以自己手动创建 创建完成后可以在里面定 ...
- iOS开发添加pch文件
首先说一下pch的作用: 1.存放一些全局的宏(整个项目中都用得上的宏) 2.用来包含一些全部的头文件(整个项目中都用得上的头文件) 3.能自动打开或者关闭日志输出功能 如何在Xcode中添加pch文 ...
- iOS项目添加PCH文件
1.单击Info.plist右键单击->New File->Other->PCH File创建PCH文件 文件名设置成:项目名-Prefix ->点击Create,创建成功. ...
- IOS Xcode7 新建PCH文件
第一步:新建文件找到iOS中的Othere点击PCH File 点击Next 第二步:修改文件名为当前工程名(一般与工程名同名),勾选Targets,点击create创建 第三步:如图选中红框中的路径 ...
- (转)iOS学习之 plist文件的读写
在做iOS开发时,经常用到到plist文件, 那plist文件是什么呢? 它全名是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件.属性列表文件的扩展名为.plist ...
- iOS学习之 plist文件的读写
在做iOS开发时,经经常使用到到plist文件, 那plist文件是什么呢? 它全名是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件.属性列表文件的扩展名为.pli ...
随机推荐
- c语言强制类型转换
一.强制类型转换 printf("3/2+100.5=%f",3/2+100.5);//100.5错误表达 printf (" (float)3/(float)2 ...
- ShareSdk使用心得
1. 微信和朋友圈:分享的时候设置了链接和图片,但就是不显示: 需要指明ShareType为WEB_PAGE 2. 需要完整添加 ShareSdk 的所需要的权限,不然分享闪退,并且不报异常:网络请求 ...
- android中点击空白处隐藏软键盘
InputMethodManager manager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERV ...
- Javascript和Java获取各种form表单信息的简单实例
大家都知道我们在提交form的时候用了多种input表单.可是不是每一种input表单都是很简单的用Document.getElementById的方式就可以获取到的.有一些组合的form类似于che ...
- Xcode 7如何免费真机调试iOS应用
Xcode 7如何免费真机调试iOS应用的简单方式: 运行Xcode后,点击菜单中的Preferences…进入Accounts标签,这里选择添加Apple ID:在弹出的对话框中登入你的Apple ...
- 二叉树学习笔记之经典平衡二叉树(AVL树)
二叉查找树(BSTree)中进行查找.插入和删除操作的时间复杂度都是O(h),其中h为树的高度.BST的高度直接影响到操作实现的性能,最坏情况下,二叉查找树会退化成一个单链表,比如插入的节点序列本身就 ...
- Delphi基本数据类型---枚举、子界、集合、数组
参考:http://blog.csdn.net/qustdong/article/details/9230743 参考:http://www.cnblogs.com/xumenger/p/440222 ...
- MYSQL建表语法(主键,外键,联合主键)
在看<Learning SQL>第二版, 慢慢打实SQL的基础. 建表一: ), lname ), gender ENUM(), city ), state ), country ), p ...
- 攻城狮在路上(叁)Linux(十八)--- 文件系统的简单操作
本篇仅作为补漏. 一.查看磁盘和目录的容量:df du df:列出文件系统的整体磁盘使用量. du:评估文件系统的磁盘使用量(常用于评估目录所占容量) 二.连接文件:ln 1.hard link:硬 ...
- 攻城狮在路上(叁)Linux(十二)--- Linux的目录与路径
一.相对路径与绝对路径: A.绝对路径:由根目录/开始写起的路径,例如 /usr/share/doc B.相对路径:不是由根目录/开始写起的路径. 二.目录的相关操作: 1.cd: 目录切换 cd ~ ...