web-dev-qa-db-ja.com

#ifdefでif条件を記述する方法。ステージング用。 Objective-C

この呼び出し内にもう1つ条件を追加する必要がありますStaging ..

この状態でそれを行う方法。

  #ifdef MYAPP_PRODUCTION
        buildMode = @"Production";
    #else

    #ifdef MYAPP_RELEASE
        buildMode = @"Release";
    #else MYAPP_DEBUG
       buildMode = @"Debug";
    #endif
    #endif

もう1つはMyApp_Stagingこのif条件にこれを行う方法を含める必要がありますか?

24
user891268

このような方法で、新しいステージングモードを含むすべての異なるオプションを含め、ステートメント全体をよりクリーンにすることができます。

#ifdef MYAPP_PRODUCTION
    buildMode = @"Production";
#Elif MYAPP_RELEASE
    buildMode = @"Release";
#Elif MYAPP_DEBUG
    buildMode = @"Debug";
#Elif MYAPP_STAGING
    buildMode = @"Staging";
#endif
67
Suhail Patel

あなたの質問はあまり明確ではありません... #ifdefに複数の条件が必要な場合は、ここに解決策があります:

#if defined(MYAPP_RELEASE) && defined(MyApp_Staging)
    // ...
#else
    // ...
#endif
60
jv42

SwiftおよびXcode 7では、構文が変更されています。

#if DEBUG || RELEASE
    let URL = "https://www.example.com/beta"
#elseif APPSTORE
    let URL = "https://www.example.com/prod"
#endif
11
paulvs

これはどうですか?

#if defined(MYAPP_PRODUCTION)
  buildMode = @"Production";
#Elif defined(MYAPP_RELEASE)
  buildMode = @"Release";
#Elif defined(MYAPP_DEBUG)
  buildMode = @"Debug";
//#Elif defined(MYAPP_STAGING)
#else
  buildMode = @"Staging";  
#endif  
1
Hneel

2つのビルドターゲットで条件を無効にする場合は、次のように使用します。

#if !(TOWNTALK || EPISD)

0
Rohit Mandiwal