IOS #ifdef 的那些事儿

版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/u012884714/article/details/25188685


格式有点乱,整了几次都整只是来,大家将就一下吧。

这篇文章是本人(本人是菜鸟)在第一次接触上线项目时遇到的一个让我记忆深刻的问题。

假设你是大神。那么请绕过,这仅仅是非常肤浅的知识点,写给自己也分享给大家。

相信大家对于以下的语句一定不陌生。

#ifdef (1)

(2)

#else

(3)

#endif

可是我在这里还是略微解释一下吧(显得专业),假设在这个式子之前有#define(1)的话执行(2)否则执行(3)

 

假设仅仅是这一点的话那么就对不起各位观众了。以下就要说我遇到的问题了,

我近期接触的项目代码中有这样几句

#ifdef DEBUG

static NSString *const kFPBaseUrl =@"http://(1)";

#else

static NSString *const kFPBaseUrl =@"http://(2)";

#endif

 相信基本上每一个项目里面都会有这几句

 咋一看非常easy,没错,就是非常easy。就是一个測试server地址和生产server地址的切换。

 可是问题就出在#ifdef DEBUG上,因为要改成生产server測试。所以我就開始找#defineDEBUG

 可是我找遍了整个项目也没有找到,当时我就纳闷了。那要怎么去切换?后来我得人指点明确了。

 原来这个#defineDEBUG能够算是Xcode集成的,事实上当我们执行项目的时候能够有选择是执行 debug 或 release 版本号。

 怎样选择?例如以下图 

 


 


 


    如上图,假设选择 debug 编译的话算是系统自行创建了#defineDEBUG然后以下你就知道了。。。

对于这个问题可能在有经验的人来说非常easy,可是对于我们没有经验的或者没注意过的真还是有点帮助的。


在这里我还要说一点的是,关于在项目中肯定会有測试的server和生产的server。请求时用得地址接口肯定也不一样。

假设你不想麻烦在须要切换server是修改多个地方(并且easy出现错误),那么我建议你就仅仅在这一个地方涉及请求接口

的更换和修改。

这样做的优点就是改一个地方,全部的都会变。并且不easy出错,你还有什么理由不注意一下呢?


好了,今天就到这里。有错误欢迎指正,交流 —— LC.莫流觞





猜你喜欢

转载自www.cnblogs.com/ldxsuanfa/p/9955941.html