gpt4 book ai didi

iphone - 添加到项目包时映射资源

转载 作者:行者123 更新时间:2023-12-03 20:29:25 25 4
gpt4 key购买 nike

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

#define BUTTON_BACKGROUND_PNG_FILE   @"buttonBackground.png"

是否可以检测资源何时添加到 bundle 中并使用脚本创建相应的定义?

编辑:我的意思是,类似 Android 上的 R.java 文件。

最佳答案

您可以通过在复制捆绑资源之后向目标添加运行脚本构建阶段来实现此目的。该脚本将查看 bundle (刚刚由构建过程的其余部分新创建的)内部,并根据它在那里找到的资源生成头文件。

您希望避免在没有任何新资源时重新生成 header ,因为这会减慢您的构建速度(因为每当触及 header 时,依赖于该 header 的每个 .m 文件都会重新编译)。快速近似:通过将project.pbxproj 文件的修改时间与 header 的修改时间进行比较来启动脚本,如果 header 较新则退出。更好(但更复杂)的方法:生成一个临时文件,将其与当前 header 进行比较,当且仅当它们不同时,用临时文件替换 header 。

但老实说,这似乎做了很多工作却没有多大好处,更不用说整体标题通常是一个坏主意。您的文件名是否经常更改,以至于您需要间接引用它们?换句话说,您想用所有这些#define 解决什么问题?

关于iphone - 添加到项目包时映射资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3012981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com