IOS #ifdef 的那些事儿
来源:互联网 发布:人工智能 智能交通 编辑:程序博客网 时间:2024/05/29 16:35
格式有点乱,整了几次都整不过来,大家将就一下吧。
这篇文章是本人(本人是菜鸟)在第一次接触上线项目时遇到的一个让我记忆深刻的问题。
如果你是大神,那么请绕过,这只是很肤浅的知识点,写给自己也分享给大家。
相信大家对于下面的语句一定不陌生。
#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
相信基本上每个项目里面都会有这几句
咋一看很简单,没错,就是很简单,就是一个测试服务器地址和生产服务器地址的切换。
但是问题就出在#ifdef DEBUG上,由于要改成生产服务器测试,所以我就开始找#defineDEBUG
但是我找遍了整个项目也没有找到,当时我就纳闷了。那要怎么去切换?后来我得人指点明白了。
原来这个#defineDEBUG可以算是Xcode集成的,其实当我们运行项目的时候可以有选择是运行 debug 或 release 版本。
如何选择?如下图
如上图,如果选择 debug 编译的话算是系统自行创建了#defineDEBUG然后下面你就知道了。。。
对于这个问题可能在有经验的人来说很简单,但是对于我们没有经验的或者没注意过的真还是有点帮助的。
在这里我还要说一点的是,关于在项目中肯定会有测试的服务器和生产的服务器,请求时用得地址接口肯定也不一样。
如果你不想麻烦在需要切换服务器是改动多个地方(而且容易出现错误),那么我建议你就只在这一个地方涉及请求接口
的更换和修改。这样做的好处就是改一个地方,所有的都会变,而且不容易出错,你还有什么理由不注意一下呢?
好了,今天就到这里。有错误欢迎指正,交流—— LC.莫流觞
- IOS #ifdef 的那些事儿
- iOS分辨率的那些事儿
- iOS分辨率的那些事儿
- [IOS]iOS分辨率的那些事儿
- iOS开发那些悲剧的事儿
- ios关于通讯录的那些事儿
- 关于iOS本地推送的那些事儿
- iOS 导航栏的那些事儿
- iOS 导航栏的那些事儿
- iOS 导航栏的那些事儿
- 关于iOS UIAlertController自定义的那些事儿
- 关于iOS NSOperation 自定义的那些事儿
- IOS开发那些事儿
- iOS Framework那些事儿
- iOS runloop 那些事儿
- IOS-FMDB那些事儿
- iOS:#ifdef的使用
- iOS initWithCoder, initWithFrame那些事儿
- 我的第一篇博客
- oci库使用--引发的编译链接问题
- ffmpeg 静态链接第三方库
- [Effective Java] 本博文章 - 声明版权
- 使用std::sort()排序导致程序core问题分析
- IOS #ifdef 的那些事儿
- 随便扯扯,程序员应该具备哪些素质
- git知识学习
- iOS中使用Core Plot绘制统计图入门
- 将android程序设为启动器,并且开机自动启动
- 高性能 Socket 组件 HP-Socket v3.2.1-RC3 发布
- InstallShield 12集成Framework4.0
- xmpp学习笔记(一)
- 1Z0-051 QUESTION 6 CASE和DECODE用法