web-dev-qa-db-ja.com

ProjectName-Prefix.pchがXcode 6で自動的に作成されないのはなぜですか?

ProjectName-Prefix.pchXcode 6に自動的に作成されないのはなぜですか?

プリコンパイルヘッダは不要になりましたか?

以前ProjectName-Prefix.pchにあったコードはどこに書くべきですか?

261
Wei

私はモジュールが原因で、#import <Cocoa/Cocoa.h>の必要性を排除していると思います。

プレフィックスヘッダーのどこにコードを配置するかについては、プレフィックスヘッダーに配置すべきコードはありません。インポートをそれらを必要とするファイルに入れてください。あなた自身のファイルにあなたの定義を入れてください。あなたのマクロを置きなさい…どこにも。他に方法がない限り(__FILE__が必要なときなど)、マクロの作成をやめてください。マクロが必要な場合は、それらをヘッダーに入れてインクルードしてください。

接頭辞ヘッダは、巨大で、システム全体のほとんどすべてのもので使用されるものに必要でした(Foundation.hのように)。巨大でどこにでもあるものがある場合は、アーキテクチャを再考する必要があります。プレフィックスヘッダはコードの再利用を困難にし、リストされたファイルのいずれかが変更される可能性がある場合は微妙なビルド問題を引き起こします。あなたが示すことができる深刻なビルド時の問題がプリフィックスヘッダで劇的に改善されるまでそれらを避けてください。

その場合は、作成してそれをclangに渡すことができますが、それが良い考えであることは非常にまれです。


編集:すべてのView Controllerで使用しているHUDについての具体的な質問に対して、はい、実際にそれを使用しているすべてのView Controllerに絶対にインポートする必要があります。これにより、依存関係が明確になります。新しいプロジェクトでView Controllerを再利用すると(これは、コントローラを適切に構築している場合によくあります)、すぐに必要なものがわかります。これは特にカテゴリにとって重要であり、それが暗黙のうちにコードを再利用するのを非常に困難にする可能性があります。

PCHファイルは、依存関係のリストを削除するためにはありません。 Xcodeテンプレートと同様に、必要に応じてUIKit.hまたはFoundation.hをインポートする必要があります。 PCHの理由は、(UIKitのように)本当に巨大なヘッダを扱うときのビルド時間を改善するためです。

135
Rob Napier

それが適切であるかどうかの質問なしで、あなたは手動でPCHファイルを追加することができます。

  1. プロジェクトに新しいPCHファイルを追加します。新しいファイル>その他> PCHファイル

  2. TargetのBuild Settingsオプションで、Prefix Headerの値をプロジェクト名を接頭辞として使用して、PCHファイル名を指定します(つまり、TestProjectという名前のプロジェクトおよびMyPrefixHeaderFileという名前のプロジェクトの場合は、値TestProject/MyPrefixHeaderFile.pchをplistに追加します)。

    ヒント:プロジェクトのどこに.pchを置いたかを示すパスに移動するには、$(SRCROOT)$(PROJECT_DIR)のようなものを使用できます。

  3. ターゲットのビルド設定オプションで、Precompile Prefix Headerの値を設定します。 YESへ。

425
Yedidya Reiss

あなた自身のPCHファイルを作成する必要があります
New file -> Other-> PCH fileを追加

次に、このPCHファイルのパスをビルドに追加しますsetting->prefix header->path

($(SRCROOT)/filename.pch)

enter image description here

126
Prakash Raj

私は写真で見せてあげる!

  1. 新しいファイルを追加する Add a new File

  2. プロジェクト/ビルド設定/ APPl LLVM 6.0-Languageに移動します Add a new File

51
Slemon

.pchファイルを追加する

1)プロジェクトに新しい.pchファイルを追加します - > New file-> other-> PCH file

2)プロジェクトのビルド設定を変更してください。

3) "prefix header"を検索してください。あなたはApple LLVMの下でそれを見つけることができます。

4)これをフィールドに貼り付けます$(SRCROOT)/yourPrefixHeaderFileName.pch

5)プロジェクトをクリーンアップしてビルドします。それでおしまい!!!

enter image description here

23
Subham93

手動で.pchファイルを追加し、xCode 6以前と同じようにObjective-Cを使用する場合は、.pchファイルにUIKitとFoundationフレームワークもインポートする必要があります。それ以外の場合は、これらのフレームワークを各ヘッダーファイルに手動でインポートする必要があります。使用されている言語をテストするので、とにかく次のコードを追加できます。

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif
12
mgm

つかいます :

$(PROJECT_DIR)/プロジェクト名/ PrefixHeader.pch

7

新しいPCHファイルを追加するには、次の手順に従います。

(1)新しいファイルを追加する - iOSを選択 - その他とPCHファイル

(2)プロジェクトにこのPCHファイルのパスを追加する - BuildSetting - Apple LLVM 6.0 Language

セットプレフィックスヘッダーパスを追加するYourApplicationName(root-path)/filename.pch

7
Hitesh Vaghela