我试图通过使用这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。

最佳答案

我有你想做的。您必须做一点点不同。您必须这样做:

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


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

关于ios - #.ch文件中的#define不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32806414/

10-10 20:54