我的项目有多个目标。每个目标都有自己Class
的设置文件。我想将该Class
名称存储在目标设置(Info.plist
或目标的建筑设置)中。这样我就可以根据这个设置定义我需要在每个目标中使用哪个类。
根据这个问题,我在每个目标的建筑设置中放置了“特定User Defined
于目标的变量”。
但不知道如何在我的代码中恢复它?
由于 Info.plist 文件也经过预处理,您可以使用以下方法:
在您的构建设置中定义用户定义的设置,例如 CLASS_NAME。以及您的 Info.plist 文件的密钥。将键命名为 CLASS_NAME 并将值设置为${CLASS_NAME}
。
然后,您可以通过以下方式访问此设置:
NSString* className = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"CLASS_NAME"];
您不能直接使用构建设置中定义的变量。这些变量旨在供构建工具使用。
而是在预处理器宏变量中定义一个预处理器宏,例如“MYVAR=5”。您可以在代码中访问这些宏,例如:
#if MYVAR==5
//Do something
#endif
请注意,这些表达式的评估发生在构建时而不是运行时。
只定义宏而不关心值是非常典型的用途。例如,在调试构建设置中定义“DEBUG=1”,在发布构建设置中定义“RELEASE=1”。
然后您可以使用 #ifdef 或 #ifndef 进行测试
#ifdef DEBUG
// Log
#endif