pch 文件
2016-06-17 15:17
211 查看
PCH的文件的用途:
在实际的项目开发中,如果很多地方都在使用某个类的头文件,很多地方都在使用同一个”宏”的时候;很多地方用到了NSLog()函数, 在app发布的时候,想清除掉时,此时就需要一个pch文件了;
PCH文件的好处:
其他代码文件无需显示导入该PCH文件,默认就都可以访问(其他文件无需手动#import该pch文件就能使用);
PCH文件的坏处:编译时比较耗时(这是显然的);
PCH的创建:
xcode6.1中,默认没有创建pch文件。
Command + N 新建 PCh File;
程序开发阶段分为:
1.调试阶段,写代码、调错误,需要使用NSLog()。同时在调试阶段系统会自定义一个叫做DEBUG的宏。
2.发布阶段,写好的代码生成ipa等压缩文件,上传到AppStore,安装到用户设备上,不需要NSLog()。同时系同会自动删除叫做DEBUG的宏。
3.综上所述, 可以自定义一个NSLog():
#ifdef DEBUG
#define YSCLog(...) NSLog(__VA_ARGS__)
#else
#define YSCLog(...)
#endif
4.所有与OC相关的宏定义都要写在:
#ifdef __OBJC__
#endif
里面,因为写在这个if中的所有内容只有OC代码才可以使用,当在项目中新建了一个.c文件是不可以使用的(不使用就不会报错),否则如果写在了外面,新建一个.c的程序也能使用,就报错了。比如C语言中没有#import,只有#include <xx.h>
PCH文件的导入:
导入方式一:
*选中项目-> Build Setting -> All ->搜索"head"->修改Prefix Header的内容为:
**"$(SRCROOT)/$(PRODUCT_NAME)/PrefixHeader.pch"(如果有问题,换下面的方式,可能会与中文有关)
**或者 "$(SRCROOT)/对应的文件夹名/PrefixHeader.pch"
如图所示:
导入方式二:
方式一中填写一个相对路径$(SRCROOT)/$(PRODUCT_NAME),这哪记得住?也懒得记!
怎么办:
1.先随便写一个路径,编译;
2.将pch文件拖到终端,终端会直接输出该pch的路径;
3.根据编译提示错误,缺什么路径,补全即可!
eg:
1.随便写一个路径“1”,编译错误❌提示:
2.补全路径即可:
在实际的项目开发中,如果很多地方都在使用某个类的头文件,很多地方都在使用同一个”宏”的时候;很多地方用到了NSLog()函数, 在app发布的时候,想清除掉时,此时就需要一个pch文件了;
PCH文件的好处:
其他代码文件无需显示导入该PCH文件,默认就都可以访问(其他文件无需手动#import该pch文件就能使用);
PCH文件的坏处:编译时比较耗时(这是显然的);
PCH的创建:
xcode6.1中,默认没有创建pch文件。
Command + N 新建 PCh File;
程序开发阶段分为:
1.调试阶段,写代码、调错误,需要使用NSLog()。同时在调试阶段系统会自定义一个叫做DEBUG的宏。
2.发布阶段,写好的代码生成ipa等压缩文件,上传到AppStore,安装到用户设备上,不需要NSLog()。同时系同会自动删除叫做DEBUG的宏。
3.综上所述, 可以自定义一个NSLog():
#ifdef DEBUG
#define YSCLog(...) NSLog(__VA_ARGS__)
#else
#define YSCLog(...)
#endif
4.所有与OC相关的宏定义都要写在:
#ifdef __OBJC__
#endif
里面,因为写在这个if中的所有内容只有OC代码才可以使用,当在项目中新建了一个.c文件是不可以使用的(不使用就不会报错),否则如果写在了外面,新建一个.c的程序也能使用,就报错了。比如C语言中没有#import,只有#include <xx.h>
PCH文件的导入:
导入方式一:
*选中项目-> Build Setting -> All ->搜索"head"->修改Prefix Header的内容为:
**"$(SRCROOT)/$(PRODUCT_NAME)/PrefixHeader.pch"(如果有问题,换下面的方式,可能会与中文有关)
**或者 "$(SRCROOT)/对应的文件夹名/PrefixHeader.pch"
如图所示:
导入方式二:
方式一中填写一个相对路径$(SRCROOT)/$(PRODUCT_NAME),这哪记得住?也懒得记!
怎么办:
1.先随便写一个路径,编译;
2.将pch文件拖到终端,终端会直接输出该pch的路径;
3.根据编译提示错误,缺什么路径,补全即可!
eg:
1.随便写一个路径“1”,编译错误❌提示:
2.补全路径即可:
相关文章推荐
- 反转单链表
- [Android官方Demo系列] PageTransformer布局变更
- java项目转换为web项目
- 用LayoutAnimationController给ViewGroup的item添加动画,以GridView为例
- Win10系统如何打印测试页?Win10系统打印测试页的方法
- Bootstrap前端开发案例一
- centos下安装nginx
- 一个C++类的注释:
- 应用生命周期终极 DevOps 工具包
- 关于android:configChanges的属性
- 深入理解计算机操作系统(笔记)
- 布局内容改变动画
- SpringMVC 原理
- 第三十九讲 项目二 求三位数以内所有n=a!+b!+c!的数
- 【操作系统】实验四 主存空间的分配和回收
- 使用 mysql_use_result 还是使用 mysql_store_result?
- libusb的使用
- 算法导论第十六章-贪心算法-Cpp代码实现
- Linux Shell超详细系列教程
- MTK平台camera小结(一)