条件编译

日常开发时,出于某些原因,有时或许需要增加一些仅在测验环境下运转(DEBUG)的代码。咱们能够在条件编译的协助下轻松做到这一点。

Xcode 默许内置了 Debug 环境,能够经过下边的方法进行判别。

#if DEBUG
  // 这儿的代码仅在 Debug 下编译
#else
  // 这儿的代码仅在 Release 下编译
#endif

怎么增加新的编译条件

首要咱们从项目导航器中挑选项意图根目录,选中当前项目(这儿是 Project,不是 Target),然后挑选 Build Settings,在查找框中输入 Active Compilation Conditions,就能看到了。

设置代码仅在 DEBUG/RELEASE 中编译

从图片中能够看出,Xcode 现已帮咱们预设了 DEBUG,所以咱们上边能够直接 #if DEBUG 来判别。

接下来咱们给 Release 也增加一下,双击 Release 后的空白区域,会有一个下拉框出来,点击加号,随意输入一个姓名,比方我这儿输入 REL,代表 Release

设置代码仅在 DEBUG/RELEASE 中编译

这样设置之后,就能够经过 REL 来判别 Release 环境了。

#if REL
print("This is Release!")
#else
print("This is Debug!")
#endif

怎么增加新的环境?

或许有这么一种需求,代码既不在 Debug 下运转,又不在 Release 下运转,而是另一种新的环境,比方是在正式发布之前的 RC 环境。

咱们来创建一个新的装备,从项目导航器中挑选项意图根目录,选中当前项目(这儿是 Project,不是 Target),然后挑选 Info,在 Configurations 一栏中点击加号,按照你的需求挑选从 Debug 或许 Release 仿制一份装备,然后将装备重命名为 RC。

设置代码仅在 DEBUG/RELEASE 中编译

之后再回到 Active Compilation Condition 部分,为 RC 增加编译条件。

设置代码仅在 DEBUG/RELEASE 中编译

最终,咱们就能够在代码中运用 RC 了。

#if RC
print("This is RC!")
#elseif REL
print("This is Release!")
#else
print("This is Debug!")
#endif

点击下方大众号卡片,关注我,每天共享一个关于 iOS 的新知识

本文同步自微信大众号 “iOS新知”,每天按时共享一个新知识,这儿只是同步,想要获得更好的体会就关注我吧!