2017-07-04 170 views
0

我应该分开Live和Dev URL。 所以,我写这篇文章的代码如何在宏中使用if(define)?

#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_MODE分离的最佳方法?

回答

1

串不工作objC预处理AFAIK

...又见how to compare string in C conditional preprocessor-directives


我会做什么(通常)用整数

#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); 
    } 
} 

注意:松开所有奇怪的下划线:))[如果可以]

+0

非常感谢!它工作完美! –