(转)iOS开发之Pch预编译文件的创建
本文转自
http://www.cnblogs.com/496668219long/p/4568265.html
在Xcode6之前,创建一个新工程xcode会在Supporting files文件夹下面自动创建一个“工程名-Prefix.pch”文件,也是一个头文件,pch头文件的内容能被项目中的其他所有源文件共享和访问。是一个预编译文件。
首先说一下pch的作用:
1.存放一些全局的宏(整个项目中都用得上的宏)
2.用来包含一些全部的头文件(整个项目中都用得上的头文件)
3.能自动打开或者关闭日志输出功能
虽然用了很久的Xcode6但是项目是xcode5之前创建好的,所以一开始并没有发现缺少了这个pch文件。苹果为什么要这么做呢,原因可能是因为大家 把大量的头文件和宏定义放到pch里边,导致编译时间过长。苹果去掉他可能是要加快编译时间增加用户体验。虽然失去了编程的便利性。不得不佩服苹果的以用 户为中心的思考方式。更详细的讨论可以去Stackoverflow上去看http://stackoverflow.com/questions /24158648/why-isnt-projectname-prefix-pch-created-automatically-in- xcode-6。
如何在Xcode中添加pch文件:
Command+N,打开新建文件窗口:ios->other->PCH file,创建一个pch文件
2,在工程的TARGETS里边Building Setting中搜索Prefix Header,然后把Precompile Prefix Header右边的NO改为Yes:
3.然后在Precompile Prefix Header下边的Prefix Header右边双击,添加刚刚创建的pch文件的工程路径,添加格式:“$(SRCROOT)/项目名称/pch文件名” ,$(SRCROOT)的意思就是工程根目录的意思。如果还不太清楚的话可以右键pch文件,然后show in finder:
上图中黄色圈出来的就是$(SRCROOT),也就是工程的根目录,然后后边还有一个PchText和pch两个文件夹,所以完整的pch文件的路径就是:$(SRCROOT)/PchText/pch
添加完成后,点击Enter,他会自动帮你变成你工程所在的路径:
可以了,编译一下程序,如果有错误检查一下添加的路径是否正确。
4,将Precompile Prefix Header为YES,预编译后的pch文件会被缓存起来,可以提高编译速度
5、在PrefixHeader.pch文件里声明宏定义 ,例如:宏定义一个颜色
然后在其他类中不需要引入头文件就可以直接使用,例如在RootViewController中,当你需要时就可以直接使用。
6、如果出现如下错误,说明工程路径引入错误
(转)iOS开发之Pch预编译文件的创建的更多相关文章
- iOS开发之Pch预编译文件的创建
在Xcode6之前,创建一个新工程xcode会在Supporting files文件夹下面自动创建一个“工程名-Prefix.pch”文件,也是一个头文件,pch头文件的内容能被项目中的其他所有源文件 ...
- iOS开发之pch文件
项目的Supporting files文件夹下面有个“工程名-Prefix.pch”文件,也是一个头文件 pch头文件的内容能被项目中的其他所有源文件共享和访问 一般在pch文件中定义一些全局的宏 在 ...
- iOS开发之.pch文件初识
pch全称是“precompiled header”,即预编译头文件,自Xcode6诞生之日起,便在Supporting Files文件下消失多年.说起苹果对pch的爱恨情仇,其分析pch的作用便不言 ...
- iOS工程预编译文件的创建
在搜索 添加工程名/自己的pch文件名记住加后缀
- 李洪强iOS开发之-PCH文件的配置
pch 可以用来存储共享信息,比如设备屏幕的宽度,高度.版本号等等 公用信息 Xcode 老版本会自动为我们创建pch文件,新版本开始不自动创建了,如果需要使用可以自己手动创建 创建完成后可以在里面定 ...
- xcode6没有prefix.pch预编译文件解决办法
注意到Xcode6创建的工程没有prefix.pch. 于是手动创建. 在other下选择pch文件 接着到工程的build setting下设置开启预编译并配置路径(文件的路径.因为我新建在cofi ...
- XCode6之后预编译文件的创建
首先,在你的项目创建一个.pch预编译头文件(一直点Next)
- iOS开发之info.pist文件和.pch文件
iOS开发之info.pist文件和.pch文件 如果你是iOS开发初学者,不用过多的关注项目中各个文件的作用.因为iOS开发的学习路线起点不在这里,这些文件只会给你学习带来困扰. 打开一个项目,我们 ...
- iOS开发之MVVM在项目中的应用
今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...
随机推荐
- [题解]区间dp_luogu_P3147 262144
小数据版本P3146,可以区间dp, 性质:对于一个区间如果能合并成一个数,那么这个数是确定的 理解:把每个数看做 2^x 的形式,那么如果合并:2^x + 2^x =2^(x+1) 所以 f [ i ...
- Zynq7000开发系列-3(Xilinx交叉编译环境搭建)
一.前言 上一篇文章说了,在开发之前必须先搭建起交叉编译环境,于是这里我们就介绍一下环境的搭建过程. 其实在所安装的Vivado HLx 2016.4中就包含了Xilinx SDK,在该SDK上即可开 ...
- Qt 进程和线程之二:启动线程
Qt提供了对线程的支持,这包括一组与平台无关的线程类.一个线程安全的发送事件的方式,以及跨线程的信号槽的关联.这些使得可以很容易地开发可移植的多线程Qt应用程序,可以充分利用多处理器的机器.多线程编程 ...
- 洛谷 P4503 [CTSC2014]企鹅QQ
暴力枚举不同的一位即可.. 主要是常数问题 1.统计答案时用sort速度快于用tr1/unordered_map,后者又快于map (tr1/unordered_map完全达不到理论复杂度上的O(1) ...
- FTP任务(重点看断点续传)
一.FTP任务目录: 1. 多用户同时登陆: socketserver 2. 用户登陆,加密认证: md5加密 3. 上传/下载文件,保证文件一致性:md5摘要 4. 传输过程中现实进度条 5 ...
- centOS6.5 usr/src/kernels下为空
用uname -r查看内核版本为 2.6.32-431.el6.x86_64 usr/src/kernels下为空 需要执行两个安装 yum install kernel-headers yum in ...
- 断言assert用法
本文转自:http://blog.jobbole.com/76285/ 这个问题是如何在一些场景下使用断言表达式,通常会有人误用它,所以我决定写一篇文章来说明何时使用断言,什么时候不用. 为那些还不清 ...
- promise从易到难
Chapter 1 // 需求:你要封装一个方法,我给你一个要读取文件的路径,你这个方法能帮我读取文件,并把内容返回给我 const fs = require('fs') const path = r ...
- CF739B
深搜的过程中保存路径,二分路径中满足要求的区段.不必将每个节点的ans加1,只需将合法区段末尾加1同时将开头减1来表示并保存在一个“前缀”数组中即可.最后再dfs一次累加得到答案. #include ...
- Android 滑动RecyclerView时隐藏部分控件
在使用RecyclerView控件时,上下拖动控件时的时候,需要实时的隐藏与显示部分控件,已到达很好的用户体验. 原理很简单,当RecyclerView拖动至最上层时显示控件,当RecyclerV ...