Xcode添加SUNNY编译指令:三类编译设置的选择、格式及原因
Swift自定义条件编译指令
SUNNY的配置指南 要实现#if SUNNY ... #endif这样的Swift条件编译代码,优先选择Active Compilation Conditions,下面详细说明三个选项的区别和对应格式:
1. Active Compilation Conditions(推荐)
- 定位:Xcode专门为Swift设计的条件编译配置项,是官方推荐的原生方式
- 格式:直接填写
SUNNY即可;如果需要继承上层配置(比如从Project继承到Target),追加$(inherited) - 原因:完全适配Swift的条件编译语法,写法简洁直观,不需要额外前缀或赋值,也不会和C/OC的预编译逻辑混淆
2. Other Swift Flags
- 定位:用于给Swift编译器传递各类额外参数的通用入口
- 格式:填写
-DSUNNY,其中-D是编译器的define参数,用来定义编译标志 - 问题:这是通用参数设置,不是专门为条件编译设计的,写法不够直观,容易和其他编译参数混杂,仅适合特殊场景下临时使用
3. Preprocessor Macros
- 定位:为C/Objective-C预处理器设计的宏定义配置项
- 格式:需要填写
SUNNY=1(必须赋值,通常设为1) - 问题:Swift没有传统预处理器,这里的宏是Xcode为兼容C/OC做的转译,不是Swift原生方案,写法需要赋值,不符合Swift条件编译的简洁风格,仅适合混编场景下兼容C/OC的宏需求
内容的提问来源于stack exchange,提问作者Nike Kov
相关产品推荐
相关产品推荐

