ProjectName-Prefix.pch
がXcode 6
に自動的に作成されないのはなぜですか?
プリコンパイルヘッダは不要になりましたか?
以前ProjectName-Prefix.pch
にあったコードはどこに書くべきですか?
私はモジュールが原因で、#import <Cocoa/Cocoa.h>
の必要性を排除していると思います。
プレフィックスヘッダーのどこにコードを配置するかについては、プレフィックスヘッダーに配置すべきコードはありません。インポートをそれらを必要とするファイルに入れてください。あなた自身のファイルにあなたの定義を入れてください。あなたのマクロを置きなさい…どこにも。他に方法がない限り(__FILE__
が必要なときなど)、マクロの作成をやめてください。マクロが必要な場合は、それらをヘッダーに入れてインクルードしてください。
接頭辞ヘッダは、巨大で、システム全体のほとんどすべてのもので使用されるものに必要でした(Foundation.h
のように)。巨大でどこにでもあるものがある場合は、アーキテクチャを再考する必要があります。プレフィックスヘッダはコードの再利用を困難にし、リストされたファイルのいずれかが変更される可能性がある場合は微妙なビルド問題を引き起こします。あなたが示すことができる深刻なビルド時の問題がプリフィックスヘッダで劇的に改善されるまでそれらを避けてください。
その場合は、作成してそれをclangに渡すことができますが、それが良い考えであることは非常にまれです。
編集:すべてのView Controllerで使用しているHUDについての具体的な質問に対して、はい、実際にそれを使用しているすべてのView Controllerに絶対にインポートする必要があります。これにより、依存関係が明確になります。新しいプロジェクトでView Controllerを再利用すると(これは、コントローラを適切に構築している場合によくあります)、すぐに必要なものがわかります。これは特にカテゴリにとって重要であり、それが暗黙のうちにコードを再利用するのを非常に困難にする可能性があります。
PCHファイルは、依存関係のリストを削除するためにはありません。 Xcodeテンプレートと同様に、必要に応じてUIKit.h
またはFoundation.h
をインポートする必要があります。 PCHの理由は、(UIKitのように)本当に巨大なヘッダを扱うときのビルド時間を改善するためです。
それが適切であるかどうかの質問なしで、あなたは手動でPCHファイルを追加することができます。
プロジェクトに新しいPCHファイルを追加します。新しいファイル>その他> PCHファイル。
TargetのBuild Settingsオプションで、Prefix Headerの値をプロジェクト名を接頭辞として使用して、PCHファイル名を指定します(つまり、TestProject
という名前のプロジェクトおよびMyPrefixHeaderFile
という名前のプロジェクトの場合は、値TestProject/MyPrefixHeaderFile.pch
をplistに追加します)。
ヒント:プロジェクトのどこに.pch
を置いたかを示すパスに移動するには、$(SRCROOT)
や$(PROJECT_DIR)
のようなものを使用できます。
ターゲットのビルド設定オプションで、Precompile Prefix Headerの値を設定します。 YES
へ。
あなた自身のPCHファイルを作成する必要がありますNew file -> Other-> PCH file
を追加
次に、このPCHファイルのパスをビルドに追加しますsetting->prefix header->path
($(SRCROOT)/filename.pch)
私は写真で見せてあげる!
新しいファイルを追加する
プロジェクト/ビルド設定/ APPl LLVM 6.0-Languageに移動します
.pchファイルを追加する
1)プロジェクトに新しい.pchファイルを追加します - > New file-> other-> PCH file
2)プロジェクトのビルド設定を変更してください。
3) "prefix header"を検索してください。あなたはApple LLVMの下でそれを見つけることができます。
4)これをフィールドに貼り付けます$(SRCROOT)/yourPrefixHeaderFileName.pch
5)プロジェクトをクリーンアップしてビルドします。それでおしまい!!!
手動で.pchファイルを追加し、xCode 6以前と同じようにObjective-Cを使用する場合は、.pchファイルにUIKitとFoundationフレームワークもインポートする必要があります。それ以外の場合は、これらのフレームワークを各ヘッダーファイルに手動でインポートする必要があります。使用されている言語をテストするので、とにかく次のコードを追加できます。
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif
つかいます :
$(PROJECT_DIR)/プロジェクト名/ PrefixHeader.pch
新しいPCHファイルを追加するには、次の手順に従います。
(1)新しいファイルを追加する - iOSを選択 - その他とPCHファイル
(2)プロジェクトにこのPCHファイルのパスを追加する - BuildSetting - Apple LLVM 6.0 Language
セットプレフィックスヘッダーパスを追加するYourApplicationName(root-path)/filename.pch