28

我需要在此调用Staging中再添加一个条件..

在这种情况下如何做。

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

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

另一个是MyApp_Staging需要包含在这个if条件中怎么做?

4

5 回答 5

72

你可以做这样的事情来包含所有不同的选项,包括新的暂存模式,并使整个语句更清晰:

#ifdef MYAPP_PRODUCTION
    buildMode = @"Production";
#elif MYAPP_RELEASE
    buildMode = @"Release";
#elif MYAPP_DEBUG
    buildMode = @"Debug";
#elif MYAPP_STAGING
    buildMode = @"Staging";
#endif
于 2011-08-26T13:16:48.430 回答
63

你的问题不是很清楚......如果你想在 #ifdef 中有多个条件,这里有一个解决方案:

#if defined(MYAPP_RELEASE) && defined(MyApp_Staging)
    // ...
#else
    // ...
#endif
于 2011-08-26T13:22:07.190 回答
14

在 Swift 和 Xcode 7 中,语法发生了变化:

#if DEBUG || RELEASE
    let URL = "https://www.example.com/beta"
#elseif APPSTORE
    let URL = "https://www.example.com/prod"
#endif
于 2016-06-27T21:43:58.687 回答
1

如果您想用 2 个构建目标否定条件,请像这样使用。

#if !(TOWNTALK || EPISD)

于 2017-08-19T07:01:00.447 回答
1

那这个呢?

#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  
于 2019-02-13T10:09:06.970 回答