我正在阅读这篇关于进口的文章,我有一个问题。默认情况下,prefix.pch 文件中的#import 是否会减慢编译时间?我应该删除它并仅在必要时导入吗?
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif
我正在阅读这篇关于进口的文章,我有一个问题。默认情况下,prefix.pch 文件中的#import 是否会减慢编译时间?我应该删除它并仅在必要时导入吗?
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif
不,它实际上提高了编译速度。
这是一个很好的教程,它实际上消除了使用 #import 语句和 .PCH 文件的所有困惑。它还详细介绍了 iOS7 中引入的称为“模块”的新事物。
这听起来可能有争议,但与每个人对模块的看法相反,我有完全相反的经历。我有,你会考虑,一个大项目(相当大的各种依赖项和库)。最近我开始注意到编译时间非常非常长(在 2014 Mac Pro 12 核和 32 GB RAM 上大约需要 5 分钟的正常构建时间和大约 15 分钟的“归档”时间)。
我通过简单地关闭所有库和项目上的 Enable Link Frameworks Automatically 以及 Enable Modules 来运行一个实验。我“存档”了 3 分钟存档。
我打开“启用模块”并做了同样的事情,正常情况下花了 15 分钟。奇怪而奇怪,但我坚持关闭这些选项。
从 Xcode 5 开始,有一个新特性引入了预编译源数据库。Xcode 5 基本上只编译一次所有必需的框架,将构建保存在数据库中,并且在编译代码时已经编译的部分使用。所以库中的任何内容都不会被多次编译。
所以我的猜测是,在使用 Xcode 5 时,您无需担心。
您可以在https://developer.apple.com/wwdc/videos/观看介绍此功能的 WWDC 2013 视频“Xcode 5 中的新功能”
如果我错了,请任何知情的人,随时纠正我。