Ios 如何在宏(定义)中使用if-else?

Ios 如何在宏(定义)中使用if-else?,ios,objective-c,Ios,Objective C,我应该将Live和Dev URL分开。 所以,我写了这个代码 #define _APP_MODE @"real" #if APP_MODE == dev #define _BASE_URL @"http://devmall.aaa.com/m/app/" #define _URL_FROM_SAFARI @"http://devmall.safari.com" #else #define _BASE_URL @"http://m.aaa.com/m/app/" #define _URL_FRO

我应该将Live和Dev URL分开。 所以,我写了这个代码

#define _APP_MODE @"real"

#if APP_MODE == dev
#define _BASE_URL @"http://devmall.aaa.com/m/app/"
#define _URL_FROM_SAFARI @"http://devmall.safari.com"
#else
#define _BASE_URL @"http://m.aaa.com/m/app/"
#define _URL_FROM_SAFARI @"http://m.safari.com"
但它总是返回dev_url


确保URL由APP_模式分隔的最佳方法是什么?

字符串在objC预处理器AFAIK中不起作用

。。。另见

我通常会使用整数

#import <Foundation/Foundation.h>

#define DEV 0
#define REAL 1

#define APP_MODE REAL

#if APP_MODE == DEV
#define BASE_URL @"http://devmall.aaa.com/m/app/"
#define URL_FROM_SAFARI @"http://devmall.safari.com"
#else
#define BASE_URL @"http://m.aaa.com/m/app/"
#define URL_FROM_SAFARI @"http://m.safari.com"
#endif

int main(int argc, char *argv[]) {
    @autoreleasepool {
        NSLog(BASE_URL);
    }
}

注意:去掉所有奇怪的下划线:[如果可以的话]

你不能这样做-这是编译器检查