当前位置: 首页 > 知识库问答 >
问题:

Xcode中的Prefix.pch文件是什么?

能远
2023-03-14

因此,许多开发人员正在向Prefix.pch添加各种方便的宏。但我的问题是Prefix.pch文件是什么。

>

  • 如果我从我的Xcode中删除那个Prefix.pch文件,那么我的应用程序会运行吗?或者它会显示任何错误?或者它会在构建过程中崩溃?

    如果没有Prefix.pch文件,如何运行应用程序

  • 共有3个答案

    锺离飞尘
    2023-03-14

    前缀头被编译并存储在缓存中,然后在编译过程中自动包含在每个文件中。这可以加快编译速度,并允许您包含一个文件,而无需向使用它的每个文件添加导入语句。它们不是必需的,而且实际上每当您更改它们时,编译都会很慢。

    通常,.pch文件命名格式yourProjectName前缀.pch

    郭浩穰
    2023-03-14

    pch是一个预编译头。

    在C和C编程语言中,头文件是一个文件,其文本可以由C预处理器自动包含在另一个源文件中,通常通过使用源文件中的编译器指令来指定。

    前缀头被编译并存储在缓存中,然后在编译过程中自动包含在每个文件中。这可以加快编译速度,并允许您包含一个文件,而无需向使用它的每个文件添加导入语句。它们不是必需的,而且实际上每当您更改它们时,编译都会很慢。

    在Xcode中,转到目标的构建设置(命令选项E,构建选项卡)并取消选中预编译前缀头(GCC_PRECOMPILE_PREFIX_HEADER)。如果您愿意,您也可以删除前缀标题设置的值。

    不要将宏放在.pch文件中!根据定义,.pch文件是特定于项目的预编译头文件。它真的不应该超出项目的上下文使用,它真的不应该包含除“包含”和“导入”之外的任何内容。

    如果您有一些宏,并且希望在头文件之间共享这些宏,那么请将它们粘贴到它们自己的头文件中-Common.h或其他任何文件-并且#将其包含在.pch的开头

    干浩然
    2023-03-14

    前缀.pch是一个预编译头。发明预编译头是为了加快编译速度。这些文件不是反复解析相同的头文件,而是提前解析一次。

    在Xcode中,您将要导入的头文件添加到“前缀头”中,并启用Precompile prefix header,以便对其进行预编译。但是前缀头背后的思想不同于预编译。

    前缀头隐式包含在每个源文件的开头。就像每个源文件都添加了

    #import "Prefix.pch"
    

    在文件的顶部,在任何其他内容之前。

    您可以删除预编译头。这个问题已经在我下面链接的帖子中得到了回答。它包含您需要的所有信息以及有用的注释。

    从Xcode项目中删除Prefix.pch文件可以吗?

     类似资料:
    • 问题内容: 我在工作区中有很多项目。每隔一两个星期,我必须搜索* .snap文件,将其删除。否则我的日食会花费很多时间?很想知道他们是什么?它们特定于Java吗?因为我的工作区中有很多Java项目? 问题答案: * .snap 文件表示运行时IDE的工作空间状态的变化。这主要用于Eclipse崩溃恢复计划。发生崩溃时,这些文件将用于恢复Eclipse工作区的状态。

    • 我在Github上提取了一个克隆的项目,并获得了一个文件,其中包含一个空的

    • 问题内容: 我今天早上收到此错误,找不到合理的解释: 我认为这是在我拍照时发生的。我可以根据要求显示完整的代码段。但是,这是教程中的示例代码。它只出现一次,并且在线上也没有太多解释。 我已在处打开断点和符号断点。但是,如果未设置这些断点,也会显示此错误。 当出现此错误时,两个断点均未调用。 这是什么? 问题答案: XPC 是Apple的进程间通信(IPC)系统。某些功能(例如h.264编码/解码或

    • 主要内容:文件流我们对文件的概念已经非常熟悉了,比如常见的 Word 文档、txt 文件、源文件等。文件是数据源的一种,最主要的作用是保存数据。 在操作系统中,为了统一对各种硬件的操作,简化接口,不同的硬件设备也都被看成一个文件。对这些文件的操作,等同于对磁盘上普通文件的操作。例如: 通常把显示器称为标准输出文件,printf 就是向这个文件输出数据; 通常把键盘称为标准输入文件,scanf 就是从这个文件读取数

    • Android Studio项目中的文件是什么?我读到它是模块的配置文件。我不明白它是如何工作的,难道我就不能使用gradle脚本与您添加到项目中的外部模块集成吗。 而且,大多数时候AS生成它们,所以我无法控制项目行为。如果我有一个团队在不同的IDE(如Eclipse和AS)中工作,有没有可能将我的项目设置成IDE不可知? 我不完全理解这个系统是如何运作的。

    • 我正在使用自动布局和约束,发现在Xcode 6中有一个选项,该选项在Xcode 5中不存在,默认情况下处于选中状态。 我创建了一个测试项目,然后在ViewController上添加了一个UITableView,框架设置为与view相同的大小,并添加了约束 Xcode 6您可以在这里看到,尽管tableview的框架与视图相同,Xcode建议添加-16作为约束,而Xcode 5建议添加间距0。 现在