-

业务开发中经常会制作一些工具,或者有些仅仅在调试模式下才起作用的代码,也即:按场景执行代码。

我所遇到的场景大致如下:

  • debug模式:有些Debug工具,或者打印调试日志的代码只在debug模式下生效
  • tool模式:有些自动化测试的工具,只在tool模式下才生效

如何做到场景值隔离呢,这就可以使用到Xcode中的Preprocessor Macros

目标

比如我们新增一个全局宏:DAILY_TOOL,

我们希望有一些代码只有在

1
2
3
4
5
#if defined(DAILY_TOOL)

// 关键代码

#endif

操作流程

然后我们在 Debug scheme 或者 Release scheme 配置相应的 Preprocessor Macros

DAILY_TOOL=1

然后我们就能在代码里愉快的使用 #if defined(DAILY_TOOL)