0

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

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

4

1 回答 1

0

理论上是的,尽管我不认为 .pch 是放置它的最佳位置。我建议将此宏放在Macros.h您在 .pch 中导入的 .pch 或类似机制中

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

可以在此处阅读有关 .pch 的更多信息

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

于 2012-11-27T18:21:11.800 回答