Apple开发_pch文件的创建与配置
1、pch预编译头文件的利与弊
-
1.1 说明:
- .pch文件是一个头文件,定义在.pch文件中的内容能够被项目中的其他文件访问。
- 简单来说,在.pch文件中定义的弘定义会作用到项目中的所有文件。 对于xcode6中创建工程不在自动添加.pch文件了。
- 查了下资料,很多资料认为.pch文件会影响效率。我到时觉得.pch文件总体上会加速编译,因为xcode会对.pch文件中的定义预编译并缓存。
- 至于为什么会在xcode6中被踢掉,我猜是因为很多开发者使用方式不对,反而导致减慢编译速度了吧。
- 在Xcode6之前,创建一个新的Project,Xcode会在Supporting files文件夹下面自动创建一个“工程名-Prefix.pch”文件,
- 也是一个头文件,pch头文件的内容能被项目中的其他所有源文件共享和访问,是一个预编译头文件。
-
1.2 预编译头文件的用途主要有:
- 存放一些全局的宏(整个项目中都用得上的宏)
- 用来包含一些全部的头文件(整个项目中都用得上的头文件)
- 能自动打开或者关闭日志输出功能
-
1.3 弊端
- 但是!为什么苹果在Xcode6取消了这个功能呢,综合考虑有以下副作用:
- 不利于代码移植
- 如果同一份代码需要在多个项目中使用,过度使用PCH就会带来麻烦。
- 假设项目A中PCH加了这样一行代码:#import <Security/Security.h> ,而你的某个组件使用了Security,
- 将组件代码copy到了项目B中可能编译不了,因为项目B中的PCH并没有添加Security.h。
- 隐式依赖关系
- 本来我们可以通过扫描xxxx.h文件和xxxx.m文件来找到所以来的模块,但是滥用PCH会让这些以来关系被掩盖,因为文件中可能隐式的依赖了PCH中定义的某些头文件。
- 所以我们应该节制的使用PCH。
2、创建流程
3、配置流程
-
3.1 查找配置位置
-
3.2 配置路径
4、教你使用
-
4.1 避短
- 不要把绝大部分弘定义放进来。
- 公用性小的宏定义别放进来。
-
4.2 扬长
- 放置公用性高的头文件,比如使用率较高的fundation框架,第三方库头文件。
- 为了整洁性,建立把零散的宏定义整理到某个头文件再将该头文件import入.pch文件。
- 如果不想使用.pch文件,我觉得可以这么做。
- 以MVC架构为例。 比如有一些控件的category。为了拥有pch那样的便利性又不想作用到其他不会使用它的文件。
- 我们可以将所有view层的文件继承同一个父类,可以在这个父类中import所有需要用到的更view层有关的公用宏定义,fundation框架及第三方库。
- Model层和Controller层同理。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 从 Windows Forms 到微服务的经验教训
· 李飞飞的50美金比肩DeepSeek把CEO忽悠瘸了,倒霉的却是程序员
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee