回答:
A Prefix.pch
はプリコンパイル済みヘッダーです。プリコンパイル済みヘッダーは、コンパイルを高速化するために開発されました。同じヘッダーファイルを繰り返し解析するのではなく、これらのファイルは事前に1回解析されます。
Xcodeでは、必要なヘッダーファイルのインポートを「プレフィックスヘッダー」に追加し、Precompile Prefix Header
それを有効にしてそれらをプリコンパイルできるようにします。しかし、プレフィックスヘッダーの背後にある考え方は、プリコンパイルとは異なります。
プレフィックスヘッダーは、すべてのソースファイルの先頭に暗黙的に含まれます。それは各ソースファイルが追加するようなものです
#import "Prefix.pch"
他の何よりも前に、ファイルの先頭に。
プリコンパイル済みヘッダーを削除できます。この質問は、以下にリンクしているスレッドですでに回答されています。必要なすべての情報と便利なコメントが含まれています。
.pchはプリコンパイル済みヘッダーです。
CおよびC ++プログラミング言語では、ヘッダーファイルは、Cプリプロセッサによって別のソースファイルにテキストが自動的に含まれるファイルであり、通常はソースファイルのコンパイラディレクティブを使用して指定されます。
プレフィックスヘッダーはコンパイルされてキャッシュに格納され、コンパイル時にすべてのファイルに自動的に含まれます。これにより、コンパイルが高速化され、ファイルを使用するすべてのファイルにインポート文を追加せずにファイルを含めることができます。それらは必須ではなく、実際に変更するとコンパイルが遅くなります。
Xcodeで、ターゲットのビルド設定(Command-Option-E、ビルドタブ)に移動し、[プリコンパイルプレフィックスヘッダー(GCC_PRECOMPILE_PREFIX_HEADER)]をオフにします。必要に応じて、プレフィックスヘッダー設定の値を削除することもできます。
マクロを.pchファイルに含めないでください!.pchファイルは、定義上、プロジェクト固有のプリコンパイル済みヘッダーです。これはプロジェクトのコンテキストを超えて使用するべきではなく、#includesと#imports以外は何も含めるべきではありません。
いくつかのマクロがあり、ヘッダー間で共有したい場合は、独自のヘッダーファイル(Common.hなど)に貼り付け、.pchの先頭に#includeします。
歴史:
#include => #import => .pch
プリコンパイル済みヘッダー-prefix.pch
#include
vs @import
には欠点があります- コンパイラーは何回も解析およびコンパイルする必要があるため、ビルド時間が遅くなります.h
は、インポートされたファイルの。
Precompiled header file - .pch
-共通ヘッダーを収集します。このファイルをプリコンパイルすると、ビルド時間を短縮するソースファイルで使用できます。
Prefix.pch
サンプルを見てみましょう:
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif
.pch
ファイルを追加するにはBuild Settings
:
開発者は、.pch
ファイルをサポートするために追加コストがかかるファイルを管理する必要があります。
次のステップは@import
[About]です