通常咱们在开发环境中常常会有这样的需求,若是有不是不少的接口的话,通常会这样写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,好的,一切编译正常!优化