1. ホーム
  2. アイオス

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

2022-04-03 20:27:36

質問

なぜ ProjectName-Prefix.pch で自動的に作成されます。 Xcode 6 ?

プリコンパイルヘッダはもう必要ないのでしょうか?

にあったコードはどこに書けばいいのでしょうか? ProjectName-Prefix.pch 以前は?

解決方法は?

モジュールのせいだと思います。 #import <Cocoa/Cocoa.h> .

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

プレフィックスヘッダは、巨大でシステム全体のほぼすべてで使用されるようなもの (たとえば Foundation.h ). もし、そのような巨大でどこにでもあるようなものがあれば、アーキテクチャを考え直すべきでしょう。プレフィックスヘッダはコードの再利用を困難にし、リストされたファイルのどれかが変更される可能性がある場合、微妙なビルドの問題を引き起こします。プリフィックスヘッダによって劇的に改善されることを証明できるような深刻なビルド時間の問題が発生するまでは、プリフィックスヘッダを使わないようにしましょう。

そのような場合は、1つ作成してclangに渡すことができますが、それが良いアイデアであることは信じられないほどまれです。


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

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