0

我试图通过使用这 3 个变量来定义构建的类型,但由于某种原因,它总是使用第一个。有任何想法吗?

// Pay attention: only ONE of these modes MUST be chosen.
//
//
#define DEVELOPMENT 0
#define PRODUCTION 1
#define STORE 0

这就是我使用它的方式:

#ifdef DEVELOPMENT
    NSLog(@"Development version built.");
#elif STORE
    NSLog(@"Store version built.");
#else
    NSLog(@"Distribution version built.");
#endif

它总是进入第一个 ifdef ..

4

1 回答 1

3

我得到了你想要做的。你必须做的有点不同。你必须这样做:

#if DEVELOPMENT
    NSLog(@"Development version built.");
#elif STORE
    NSLog(@"Store version built.");
#else
    NSLog(@"Distribution version built.");
#endif

因为正如@EDUsta 所说,#ifdef检查此宏是否已定义。如果是 - 那么它将被评估为true. 在您的情况下,您必须检查价值,因此您必须使用#if.

于 2015-09-27T12:22:00.687 回答