1

この問題は私を怒らせており、ほぼ間違いなく Xcode のバグに関連していますが、私がよく知らない回避策や見落としている可能性のある回避策があるかもしれません。ここに行きます:

部分的に重複するコードを含む個別の実行可能ファイルを生成する、さまざまなサブプロジェクト用のビルド ターゲットがいくつかあります。どちらのアプリにも入れるべきではないコードの特定のビットを除外するために#define、各サブプロジェクトのそれぞれの .pch ファイルで多数のマクロを定義します (例: main-app.pch)。

#ifndef MY_APP
    #define MY_APP 1
#endif

そしてsub-app.pchで

#ifndef SUB_APP
    #define SUB_APP 1
#endif

次に、いくつかのコードで、

- (void)doSomething
{
#ifdef MY_APP
    NSLog(@"This is just an example");
#endif
}

ここで問題となるのは、Xcode が条件付きでコンパイルされたコードの構文の強調表示やコード補完を行わない場合があることです。つまり、一部のマシンでのみ発生します。つまり、同僚にとってはまったく問題なく動作しますが、何をしても構文の強調表示は見られません。記録として、私たちは皆 Xcode 4.5.2 を使用しています。派生データを削除してインデックスを再作成し、ターゲット/スキーマの順序をシャッフルし、.pch ファイルの代わりにプロジェクトとターゲット設定にプリプロセッサ マクロを配置しようとしましたが、何も役に立たないようです。ここで何が起こっているのか誰にもわかりませんか?

4

1 に答える 1

0

この厄介な問題に一日のほとんどを費やした後、ある種の「解決策」を見つけました。すべて同じアプリバンドルに属する独立した実行可能ファイルには、サブプロジェクトの代わりに Xcode ワークスペースを使用します。ビルドの依存関係を作成する代わりに、現在のスキームの「ビルド」部分に追加のターゲットを追加します ( Product -> Edit scheme... )。

于 2012-12-18T22:59:01.253 に答える