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