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

条件编译

日常开发时,出于某些原因,有时可能需要添加一些仅在测试环境下运行(DEBUG)的代码。我们可以在条件编译的帮助下轻松做到这一点。

Xcode 默认内置了 Debug 环境,可以通过下边的方法进行判断。

#if DEBUG
  // 这里的代码仅在 Debug 下编译
#else

  // 这里的代码仅在 Release 下编译
#endif



如何添加新的编译条件

首先我们从项目导航器中选择项目的根目录,选中当前项目(这里是 Project,不是 Target),然后选择 Build Settings,在搜索框中输入 Active Compilation Conditions,就能看到了。

从图片中可以看出,Xcode 已经帮我们预设了 DEBUG,所以我们上边可以直接 #if DEBUG 来判断。

接下来我们给 Release 也添加一下,双击 Release 后的空白区域,会有一个下拉框出来,点击加号,随便输入一个名字,比如我这里输入 REL,代表 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。

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

最后,我们就可以在代码中使用 RC 了。

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

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

本文同步自微信公众号 “iOS新知”,每天准时分享一个新知识,这里只是同步,想要获得更好的体验就关注我吧!

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYwIfH66' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片