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>
代码:
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>
代码:
#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.补全路径即可:
相关文章推荐
- [IOS开发教程] IOS中用NSJSONSerialization来实现对JSON格式的解析
- [IOS开发教程] NSDate 日期操作工具类
- iOS 数据持久化 -- Core Data
- [IOS开发教程] NSDate 日期操作工具类
- iOS 9音频应用播放音频之播放控制暂停停止前进后退的设置
- iOS 9音频应用播放音频之播放控制暂停停止前进后退的设置
- fir.im Weekly - 17 个提升 iOS 开发效率的必备工具
- fir.im Weekly - 17 个提升 iOS 开发效率的必备工具
- iOS SDK详解之Runloop
- KVO
- iOS Cocoapods导入第三方头文件没提示
- iOS程序国际化的使用
- iOS crash分析
- 芒果iOS开发之OC类继承图
- ios添加真机调试的步骤
- iOS企业版程序发布--升级
- iOS中判断设备系统版本
- 内存泄漏检查
- iOS9系列专题一——3D Touch
- iOS 【应用程序原理-3 importantFiles(Info.plist、InfoPlist.strings、.pch文件/自定义NSLog宏)】