iOS-PCH File的快速导入方法和使用
2024-10-09 04:53:19
PCH的文件的用途:
在实际的项目开发中,如果很多地方都在使用某个类的头文件,很多地方都在使用同一个”宏”的时候;很多地方用到了NSLog()函数, 在app发布的时候,想清除掉时,此时就需要一个pch文件了;
PCH文件的好处:
其他代码文件无需显示导入该PCH文件,默认就都可以访问(其他文件无需手动#import该pch文件就能使用);
PCH文件的坏处:编译时比较耗时(这是显然的);
PCH的创建:
xcode6.1中,默认没有创建pch文件。
Command +
N 新建 PCh File;
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>
<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的内容为:
Header的内容为:
**"$(SRCROOT)/$(PRODUCT_NAME)/PrefixHeader.pch"(如果有问题,换下面的方式,可能会与中文有关)
**或者 "$(SRCROOT)/对应的文件夹名/PrefixHeader.pch"
如图所示:
导入方式二:
方式一中填写一个相对路径$(SRCROOT)/$(PRODUCT_NAME),这哪记得住?也懒得记!
怎么办:
1.先随便写一个路径,编译;
2.将pch文件拖到终端,终端会直接输出该pch的路径;
3.根据编译提示错误,缺什么路径,补全即可!
eg:
1.随便写一个路径“1”,编译错误提示:
2.补全路径即可:
最新文章
- XE6 &; IOS开发之开发者账号、苹果证书(2):关于苹果证书
- Oracle数据文件在open状态被删除的恢复记录
- 微软Hololens学院教程-Hologram 210 Gaze(凝视)【微软教程已经更新,本文是老版本】
- FileDescriptor
- hibernate学习(一)
- 如何在网页标题栏title加入logo图标?
- git基本命令--远程
- <;link rel=";stylesheet"; href=";3.css";/>; 链接方式
- golang基础- ElasticSearch搜索引擎、kibana可视化工具、向ES输出数据
- BZOJ3105-新Nim游戏
- Redis高可用 Sentinel
- java post json sample
- udev example -- detect usb and write test file
- sonar6.7.6安装及汉化
- SVM较全面介绍,干货!(转载)
- VUE中过了一遍还不熟悉的东西
- centos7.2 python2.7升级python3.6退格键不能用
- 2019.02.09 codeforces gym 100548F. Color(容斥原理)
- mysql三大特性、三范式、五大约束
- Java并发之AQS详解(转)
热门文章
- Linux系统rabbitmq安装
- Hyperledger Fabric——balance transfer(四)安装和实例化chaincode
- Hyperledger Fabric——balance transfer(一)启动示例
- ShoneSharp语言(S#)的设计和使用介绍系列(8)— 最炫“公式”风
- layui 数据表格最简单的点击事件
- Kubernetes学习笔记(八):Deployment--声明式的升级应用
- 实验二:Linux系统简单文件操作命令
- 重学 Java 设计模式:实战建造者模式
- 【QT】利用pyqt5实现简单界面
- Java IO(五)字节流 FileInputStream 和 FileOutputStream