8

プロジェクト内のすべてのクラスで使用できるように、Prefix.pchファイルに含めているいくつかの定数ファイル「Constants.h」がプロジェクトにあります。たくさんの#defineステートメントが含まれているだけです。

私のクラスはこれらの定数を認識せず(オートコンプリートなし)、Xcodeはそれらを使用するたびに「UndeclaredIdentifier」エラーを表示します。ただし、プロジェクトを実行すると、すべてが正常に機能します(エラーを無視するように設定されています)。

これらの警告を取り除く方法はありますか?#pragmaは、プレフィックスファイルなどでそれらを無視しますか?ビルド設定で「プリコンパイルプレフィックスヘッダー」をNOに設定するなど、多くのオプションを試しました。

何か案は?

編集:派生データを削除し、ビルドフォルダをクリーンアップ/削除しようとしましたが無駄になりました。

私のプロジェクトには3つのターゲットがあり、このプロジェクトには別のプロジェクトがあることに注意してください。

また、一部の#importsは通常のクラスをインポートします。UIFontやAnalyticsクラスのカテゴリ拡張のように。これはそれに影響を与える可能性がありますか?

4

4 に答える 4

10

これを修正するには、ターゲットのビルド設定で「プリコンパイルプレフィックスヘッダー」フラグをNOに変更する必要がありました。これを行うと、コンパイルされたヘッダーファイルをキャッシュすることで達成されるビルドパフォーマンスが失われますが、私の場合、プレフィックスヘッダーはかなり小さいので、ビルドにかかる時間に影響はありません。

于 2012-12-19T21:26:32.507 に答える
3

プロジェクトから派生したデータを削除してみてください。Xcodeは、このような「エラー」を削除するために、プロジェクトのインデックスを再作成する必要がある場合があります。

主催者>プロジェクト>あなたのプロジェクト

[派生データ]行の右側にある[削除]ボタンをクリックします。

すぐにXcodeを終了してから、再度開きます。

于 2012-08-16T17:12:57.203 に答える
2

多くのマクロを含む.hファイルをインポートするPCHファイルがありました(具体的には、展開ターゲットよりも新しい機能を使用すると警告するMJGAvailabilityヘッダーを使用します)。交換:

#import "MJGAvailability.h"

#include "MJGAvailability.h"

私のためにこの問題を解決しました。

于 2014-01-11T14:57:58.603 に答える
0

ターゲットの1つに、「プリプロセッサマクロ」から「プリコンパイル済みヘッダーで使用されていないプリプロセッサマクロ」に移動したプリプロセッサマクロがあり、問題が解決しました。

于 2012-08-17T21:06:11.870 に答える