0

.pchはマクロと定数の定義を入れるのに適していると聞いたので、デフォルトの内容については次のとおりです。

#import <Availability.h>

#ifndef __IPHONE_4_0
#warning "This project uses features only available in iOS SDK 4.0 and later."
#endif

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

定義はどこに入れるべきですか?UIKit.hをインポートしているように見えるだけでなく、同じファイルもインポートするのは奇妙です(デフォルトですべてのファイルでインポートされるViewController.hと思っていたので、再度インポートする必要はありません).pchViewController.hUIKit.h

4

2 に答える 2

2

プリコンパイル済みヘッダーは、プロジェクトの全体的なコンパイル時間を改善することを目的としているため、プリコンパイル済みヘッダーの設計は完全にパフォーマンスの問題に左右されます。プリコンパイル済みヘッダーの使用例は比較的単純です。プロジェクト内のほぼすべてのソース ファイルに含まれるヘッダーの共通セットがある場合、そのヘッダーのバンドルを単一のプリコンパイル済みヘッダー (PCH ファイル) にプリコンパイルします。

.pch ファイルを使用すると、UIKit.h や Foundation.h などのファイルをインポートできます (プロジェクトのすべての .h にインポートするのではなく)。それらをインポートします。

#ifdef OBJC の重要性は、目的の c コードをビルドするようにコンパイラを設定していない場合に、目的の c コードを含むヘッダーをインポートしないようにすることです (したがって、多くのコンパイラ エラーを回避します)。

于 2012-06-02T08:39:02.770 に答える
1

私が通常入れている追加のインポート:

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

あなたは正しいです。それらのいずれかを再度インポートする必要はありませんが、そうしても害はありません。

于 2012-06-02T08:31:09.910 に答える