3

作为构建过程的一部分(在 Visual Studio 中),我使用自定义 MSBuild 任务获取所有输入源文件,将它们复制到辅助位置,在它们上运行预处理工具,然后将副本返回给 MSBuild 以继续构建过程。我现在正在开发一个 iOS 项目,我需要能够做同样的事情。自从我使用 Xcode 以来已经有很长时间了,所以我对如何设置构建过程以与我刚才描述的方式相同的工作方式非常生疏。

具体来说,这是我正在做的预处理:

与许多游戏和引擎一样,通常有很多命名资源、事件、脚本符号、对象状态等在源代码中表示时需要人类可读,但必须在运行时进行完整的字符串比较太昂贵了。我没有使用完整的字符串,而是使用 32 位StringId整数类型来表示这些值。SID('some-named-identifier')我的预处理工具通过源代码运行,并用该宏中字符串的 32 位散列替换表单中宏的所有实例。在开发过程中,程序员和设计人员可以使用任意字符串作为他们需要使用的任何东西的标识符。在运行时,比较StringIds 是简单的整数比较,因为它们是实际字符串的散列版本,所以编译后的二进制文件中没有存储可以提取的字符串。

此外,在预处理SID宏时,我使用字符串及其散列值填充 MySQL 数据库。这让我可以在运行时进行反向查找,以便在调试时打印人类可读的字符串。这是一个很棒的系统,我也想让它在 Xcode 中运行!

提前致谢!

4

0 回答 0