如果我在GCC_PREPROCESSOR_DEFINITIONS(或预处理器宏,如果你使用XCode)下添加一个宏"FOO = bar",那么访问"FOO"值的最佳方法是什么?
目前,我使用笨拙的:
#define MACRO_NAME(f) #f
#define MACRO_VALUE(f) MACRO_NAME(f)
#ifdef FOO
NSLog(@"%s", MACRO_VALUE(FOO));
#else
NSLog(@"undefined");
#endif
Run Code Online (Sandbox Code Playgroud)
这将输出"bar"
当然,必须有更好/更清洁的方式?
我正在运行我xctests使用xcodebuild并需要传入一些environment variables.在下面的例子ACCOUNT_ID和HOST_URL.
我尝试将变量作为环境变量传递并使用从测试中访问它们 getenv ("ACCOUNT_ID")
xcodebuild -project CalculatorTestClient.xcodeproj -scheme CalculatorTestClient -destination '%s' ACCOUNT_ID=%s HOST_URL=%s test"
并将它们传递进去user defaults并使用它们访问它们[[NSUserDefaults standardUserDefaults] valueForKey:@"HOST_URL"];
xcodebuild -project CalculatorTestClient.xcodeproj -scheme CalculatorTestClient -destination '%s' ACCOUNT_ID=%s HOST_URL=%s test"
这两种方法都不适用于我.从命令行传递用户定义变量的最简单方法是什么?