zoukankan      html  css  js  c++  java
  • 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.莫流觞





  • 相关阅读:
    支付扣款 并发 异步
    Floyd-Warshall算法
    black arch
    ChromeDriver only supports characters in the BMP
    Getting console.log output with Selenium Python API bindings
    微信公众号文章批量采集系统的构建
    node npm Bower
    PyPy CPython C++ connects programs written in C and C++ with a variety of high-level programming languages
    timeout connect 10000 # default 10 second time out if a backend is not found
    timeout connect 10000 # default 10 second time out if a backend is not found
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/9955941.html
Copyright © 2011-2022 走看看