2017-07-04 62 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

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