从prefix.pch中读取Info.plist

时间:2012-11-27 14:19:34

标签: ios xcode cocoa-touch plist info.plist

是否可以从prefix.pch文件中的Info.plist文件中读取值并根据该值坐一个宏?

例如,如果我在Info.plist中有一个名为UseSomeResource的布尔属性,如果该属性的值为YES,我想创建一个#define USE_SOME_RESOURCE 1

1 个答案:

答案 0 :(得分:0)

理论上是的,虽然我不认为.pch是最好的地方。我建议将此宏放在您在.pch中导入的Macros.h或类似机制中

#define USE_SOME_RESOURCE ([[[[NSBundle mainBundle] infoDictionary] objectForKey:@"UseSomeResource"] boolValue])

More about .pch can be read here

值得注意的是,这仍然会在运行时确定值,而不是在编译时。如果您希望它在编译时运行,您可能需要编写一个脚本作为构建阶段的一部分,该脚本读取Info.plist,并创建一个头文件,然后将其作为项目的一部分包含在内。这似乎是一个非常简单的方法,因此我强烈建议运行时替代方案。