-
业务开发中经常会制作一些工具,或者有些仅仅在调试模式下才起作用的代码,也即:按场景执行代码。
我所遇到的场景大致如下:
- debug模式:有些Debug工具,或者打印调试日志的代码只在debug模式下生效
- tool模式:有些自动化测试的工具,只在tool模式下才生效
如何做到场景值隔离呢,这就可以使用到Xcode中的Preprocessor Macros
。
目标
比如我们新增一个全局宏:DAILY_TOOL,
我们希望有一些代码只有在
1 | #if defined(DAILY_TOOL) |
操作流程
然后我们在 Debug scheme
或者 Release scheme
配置相应的 Preprocessor Macros
:
DAILY_TOOL=1
然后我们就能在代码里愉快的使用 #if defined(DAILY_TOOL)
啦