添加到项目捆绑包时映射资源

eme*_*gro 2 iphone scripting xcode

当我用#defines映射所有图像文件名和xib名时,我有一个.h.例如,如果我有一个名为"buttonBackground.png"的图像,我将其映射到我的.h中

#define BUTTON_BACKGROUND_PNG_FILE   @"buttonBackground.png"
Run Code Online (Sandbox Code Playgroud)

可以检测何时将资源添加到捆绑包并使用脚本创建对应的定义?

编辑:我的意思是,像R.javaAndroid上的文件.

dwi*_*man 6

您可以通过在Copy Bundle Resources之后向目标添加Run Script构建阶段来实现此目的.该脚本将查看该bundle(它刚刚由构建过程的其余部分创建),并根据它在那里找到的资源生成头文件.

当没有任何新资源时,您希望避免重新生成标头,因为这会降低您的构建速度(因为每当触摸标头时,将重新编译依赖于该标头的每个.m文件).快速近似:让您的脚本首先将project.pbxproj文件的修改时间与标题的修改时间进行比较,如果标题较新则退出.一种更好(但有些更复杂)的方法:生成一个临时文件,使用当前标头对其进行区分,并将标头替换为临时文件,当且仅当它们不同时.

但老实说,这看起来好像很多工作并没有太大的好处,更不用说整体标题总的来说是一个坏主意.您的文件名是否经常更改,您需要间接引用它们?换句话说,你试图用所有这些#defines解决什么问题?