iOS頭文件中如何在宏裏引用已有的宏

通常咱們在開發環境中常常會有這樣的需求,若是有不是不少的接口的話,通常會這樣寫api

#define kLoginURLStr                @"http://test.yunlu6.com/api/v1/login"
#define kLogoutURLStr               @"http://test.yunlu6.com/api/v1/logout"
複製代碼

可是 通常 公司 接口少則幾十個,多則上百個,要是未來改的話,會稍顯麻煩,且容易出錯,因而會有下面優化的寫法: #define kTestHostName @"test.yunlu6.com" #define kLoginURL @"" kTestHostName@"/api/v1/login" #define kLogoutURLStr @"" kTestHostName@"/api/v1/logout" 可是不少公司的服務器環境常常會變更,所以,咱們還須要考慮到切換域名的狀況,因而下面就會寫出最終的寫法 #define kTestHostName @"test.yunlu6.com" #define kDevelopHostName @"develop.yunlu6.com" #define kHostName kDevelopHostName服務器

#define kLoginURL                    @"" kHostName@"/api/v1/login"
#define kLogoutURLStr                @"" kHostName@"/api/v1/logout"
複製代碼

之後就只須要更改這一行宏就能夠了 #define kHostName kDevelopHostName/kTestHostName/kOtherHostNameide

注:@"" kTestHostName@"/api/v1/login"中 kTestHostName前面必需要有空格用來區分字面量引號"和標誌符kTestHostName,不然在編譯時候會報錯, Invalid suffix on literal; C++11 requires a space between literal and identifier,好的,一切編譯正常!優化

相關文章
相關標籤/搜索