我在尝试使用Swift复制ObjC提供的预处理宏功能时遇到了问题。我听说Swift没有预处理器,因此我正在寻找另一种实现方式。
我的最终目标是使用命令行工具构建项目,并传递自定义变量和值,这些变量和值将在构建之前预处理并插入到特定位置的代码中。
以下是ObjC的解决方案:
使用此命令运行测试:
我的最终目标是使用命令行工具构建项目,并传递自定义变量和值,这些变量和值将在构建之前预处理并插入到特定位置的代码中。
以下是ObjC的解决方案:
使用此命令运行测试:
xcodebuild \
test \
-scheme TestUserDefinedVariablesObjC \
-destination 'platform=iOS Simulator,name=iPhone 6' \
MY_VAR=42
我在代码中使用 MY_VAR
,例如:
int a = MY_VAR;
我在目标的构建设置中像这样将MY_VAR添加到预处理器宏中:MY_VAR=$(MY_VAR)
。
如果万不得已,我可以在方案的运行阶段添加预操作,使用sed或类似工具替换正确的值,但这并不是一个好的解决方案。
MY_VAR = $(MY_VAR)
,但是使用int a = MY_VAR;
会产生“未解决的标识符'MY_VAR'”错误。 - paulvs