就我而言,我有 50 个文件夹,每个文件夹都有子文件夹和图像。我可以将它们拖到应用程序主包中,但有很多重复的文件名,以结构化方式访问它们会更实用。
最佳答案
您的措辞“以结构化方式访问它们会更实用”似乎表明您认为 Resources
文件夹不能包含文件的文件夹树,它可以。但是,如果您让 Xcode 本身将资源文件复制到包中,它将压平树,而没有任何选项来保留它(出于未知原因)。为了解决这个问题,您可以使用构建脚本将文件复制到 bundle 中。
在大纲中,您需要阅读一些内容来填补空白:
- 首先将文件和文件夹添加到项目中。每个文件夹使用一个组,在 Xcode 9 中创建一个组会在项目目录中创建一个相应的文件夹,但在之前的版本中,您必须创建该组,然后将其与一个文件夹关联 - 请检查您所使用的任何 Xcode 版本的文档。<
- 将以这种方式添加的所有文件夹和文件标记为不构建目标的一部分。这可以防止 Xcode 自动将文件复制到 bundle 中,并在此过程中展平文件夹树。
- 现在,在目标设置中,转到“构建阶段”选项卡并添加新的构建脚本阶段。添加一个 shell 脚本,该脚本使用类似
ditto
的内容将文件夹树复制到 bundle 中。设置引用项目和包的各种环境变量,检查 Xcode 文档或仅运行虚拟脚本并将它们转储出来(这是一个选项,或使用printenv
)。您可以使用这些环境变量来确定副本的源和目标。 - 在您的应用程序本身中,您可以使用标准捆绑方法找到树的根文件夹。从那里,您可以使用您选择的任何方法来遍历它/引用其中的项目,就像文件夹树不在包内一样。
HTH
关于ios - 将 50 个文件夹的数据集添加到 iOS 应用程序的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48010996/