2011-09-19 12 views
16

私のiPhoneのiOSプロジェクトには、ProductionPreviewという2つのターゲットがあります。iOS:現在のターゲットに応じた条件コード

私はターゲットの中にいる場合に限り、コード行を実行したいと考えていますPreview。 これは何らかの種類の#ifdef ...でなければならないと思います。私はa solutionを見つけましたが、ほとんどのことをしていますが、の設定はで、のターゲットはではありません。

例:あなたはビルド設定のプリプロセッサマクロセクションでプリプロセッサのifdefを追加することができ、あなたの助け

答えて

19

ため

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    #ifdef MY_PREVIEW_TARGET 
    [SomeLibraryWhichIsInPreviewTarget someMethod]; 
    #endif 

    // Code that applies for both targets ... 
} 

感謝。

+0

なぜプリプロセッサマクロであるべきですか? "USER"にとって便利なので、 "User defined"でなければなりません。ではない? – Satyam

36

サーム溶液が正常に機能しました。

  1. オープンザ・プレビューのターゲットのビルド設定
  2. MY_PREVIEW_TARGET=YESPreprocessor Macrosを設定し、私は目標を確認するために上記の私のコードを使用することができます。
+10

エントリ 'MY_PREVIEW_TARGET'を' Preprocessor Macros'に追加するだけです。次に、あなたのコードで '#ifdef MY_PREVIEW_TARGET'を使います。 'MY_PREVIEW_TARGET = YES'のように実際にマクロを' YES'に設定する必要はありません。値をチェックしていないので値を設定する必要はありません。単に変数が存在するだけです。 – SwiftArchitect