您的位置:首页 > 移动开发 > IOS开发

iOS-PCH File的快速导入方法和使用

2015-11-23 15:33 489 查看
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>

代码:

#ifndef PrefixHeader_pch
#define PrefixHeader_pch

#ifdef __OBJC__
// Include any system framework and library headers here that should be included in all compilation units.
// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.
#ifdef DEBUG
#define YSCLOG(...) NSLog(__VA_ARGS__)
#else
#define YSCLOG(...)
#endif

#endif

#endif /* PrefixHeader_pch */


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.补全路径即可:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: