32

我的项目有多个目标。每个目标都有自己Class的设置文件。我想将该Class名称存储在目标设置(Info.plist或目标的建筑设置)中。这样我就可以根据这个设置定义我需要在每个目标中使用哪个类。

根据这个问题,我在每个目标的建筑设置中放置了“特定User Defined于目标的变量”。

但不知道如何在我的代码中恢复它?

4

2 回答 2

69

由于 Info.plist 文件也经过预处理,您可以使用以下方法:

在您的构建设置中定义用户定义的设置,例如 CLASS_NAME。以及您的 Info.plist 文件的密钥。将键命名为 CLASS_NAME 并将值设置为${CLASS_NAME}

然后,您可以通过以下方式访问此设置:

NSString* className = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"CLASS_NAME"];
于 2010-07-23T09:49:33.427 回答
10

您不能直接使用构建设置中定义的变量。这些变量旨在供构建工具使用。

而是在预处理器宏变量中定义一个预处理器宏,例如“MYVAR=5”。您可以在代码中访问这些宏,例如:

#if MYVAR==5
    //Do something
#endif

请注意,这些表达式的评估发生在构建时而不是运行时。

只定义宏而不关心值是非常典型的用途。例如,在调试构建设置中定义“DEBUG=1”,在发布构建设置中定义“RELEASE=1”。

然后您可以使用 #ifdef 或 #ifndef 进行测试

#ifdef DEBUG
    // Log
#endif
于 2010-07-23T08:35:55.600 回答