博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS头文件中如何在宏里引用已有的宏
阅读量:5795 次
发布时间:2019-06-18

本文共 986 字,大约阅读时间需要 3 分钟。

一般我们在开发环境中经常会有这样的需求,如果有不是很多的接口的话,一般会这样写

#define kLoginURLStr                @"http://test.yunlu6.com/api/v1/login"#define kLogoutURLStr               @"http://test.yunlu6.com/api/v1/logout"复制代码

但是 一般 公司 接口少则几十个,多则上百个,要是将来改的话,会稍显麻烦,且容易出错,于是会有下面优化的写法: #define kTestHostName @"" #define kLoginURL @"" kTestHostName@"/api/v1/login" #define kLogoutURLStr @"" kTestHostName@"/api/v1/logout" 但是很多公司的服务器环境经常会变动,因此,我们还需要考虑到切换域名的情况,于是下面就会写出最终的写法 #define kTestHostName @"" #define kDevelopHostName @"" #define kHostName kDevelopHostName

#define kLoginURL                    @"" kHostName@"/api/v1/login"#define kLogoutURLStr                @"" kHostName@"/api/v1/logout"复制代码

以后就只需要更改这一行宏就可以了 #define kHostName kDevelopHostName/kTestHostName/kOtherHostName

注:@"" kTestHostName@"/api/v1/login"中 kTestHostName前面必须要有空格用来区分字面量引号"和标志符kTestHostName,否则在编译时候会报错, Invalid suffix on literal; C++11 requires a space between literal and identifier,好的,一切编译正常!

转载于:https://juejin.im/post/5c19fa5ae51d451cdc394100

你可能感兴趣的文章
java.lang.NoClassDefFoundError: org/apache/juli...
查看>>
当Activity主题为Dialog或者windowIsTranslucent为true,生命周期的onStop不执行的问题
查看>>
A20关机长按关机按钮提示进入安全模式
查看>>
Android--从系统Camera和Gallery获取图片优化
查看>>
数据库cursor泄露的bug修改
查看>>
Python中列表append()、extend()、"+"、"+="的区别
查看>>
WIN10-解决应用程序特定权限设置并未向在应用程序容器(解决浏览器崩溃问题)...
查看>>
btrace
查看>>
【奖】51CTO学院软考班发奖学金啦(中高项、监理、信息安全)
查看>>
美国卫星撞月球 测试是否有水耗资7000多万美元
查看>>
hdfs笔记
查看>>
Callback函数
查看>>
hibernate批量插入数据库操作案例
查看>>
虚拟机新增加硬盘,不用重启读到新加的硬盘
查看>>
Java IO流详尽解析
查看>>
邮件服务系列之四基于虚拟用户的虚拟域的邮件系统(安装courier-authlib以及部分配置方法)...
查看>>
初级linux菜鸟玩转app开发
查看>>
MySQL导入数据提示max_allowed_packet错误的解决方法
查看>>
SC2012 Orchestrator - Standard Activities and Integration Pack
查看>>
另一种方法来隐藏或伪装Tomcat的版本信息
查看>>