Как написать, если условие в #ifdef. для постановки. в объективе-с - PullRequest
24 голосов
/ 26 августа 2011

Мне нужно добавить еще одно условие в этот вызов Постановка ..

как это сделать в таком состоянии.

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

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

еще один MyApp_Staging нужно включить в это условие, если это сделать?

Ответы [ 5 ]

64 голосов
/ 26 августа 2011

Вы можете сделать что-то вроде этого, чтобы включить все различные опции, включая новый Staging Mode, и сделать все утверждение более чистым:

#ifdef MYAPP_PRODUCTION
    buildMode = @"Production";
#elif MYAPP_RELEASE
    buildMode = @"Release";
#elif MYAPP_DEBUG
    buildMode = @"Debug";
#elif MYAPP_STAGING
    buildMode = @"Staging";
#endif
57 голосов
/ 26 августа 2011

Ваш вопрос не очень понятен ... Если вам нужно несколько условий в #ifdef, вот решение:

#if defined(MYAPP_RELEASE) && defined(MyApp_Staging)
    // ...
#else
    // ...
#endif
10 голосов
/ 28 июня 2016

В Swift и Xcode 7 синтаксис изменился:

#if DEBUG || RELEASE
    let URL = "https://www.example.com/beta"
#elseif APPSTORE
    let URL = "https://www.example.com/prod"
#endif
0 голосов
/ 13 февраля 2019

Как насчет этого?

#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  
0 голосов
/ 19 августа 2017

В случае, если вы хотите отменить условие с двумя целями сборки, используйте вот так.

#if !(TOWNTALK || EPISD)

...