将包含 50 个文件夹的数据集添加到 iOS 应用程序的最佳方法是什么?
Whats the best way to add a dataset of 50 Folders to an iOS App?
在我的例子中,我有 50 个文件夹,每个文件夹都有子文件夹和图像。我可以将它们拖到应用程序主包中,但是有很多重复的文件名,以结构化方式访问它们会更实用。
您的措辞 "it would be more practical to access them in the structured way" 似乎表明您认为 Resources
文件夹不能包含文件的文件夹树,它可以。但是,如果您让 Xcode 本身将您的资源文件复制到捆绑包中,它会将树展平,而没有任何选项可以保留它(原因不明)。要解决此问题,您可以使用构建脚本将文件复制到包中。
在大纲中,您需要通过一些阅读来填补空白:
- 首先将您的文件和文件夹添加到您的项目中。每个文件夹使用一个组,在 Xcode9 中,创建一个组会在项目目录中创建一个相应的文件夹,但在以前的版本中,您必须创建该组,然后将其与一个文件夹相关联——检查任何内容的文档 Xcode 您正在使用的版本。
- 将以这种方式添加的所有文件夹和文件标记为不是 构建目标的一部分。这可以防止 Xcode 将文件自动复制到包中,并在此过程中展平文件夹树。
- 现在在目标设置中转到 "Build Phases" 选项卡并添加一个新的构建脚本阶段。添加一个 shell 脚本,它使用类似
ditto
的东西将文件夹树复制到包中。设置了引用项目和包的各种环境变量,检查您的 Xcode 文档或只是 运行 一个虚拟脚本并将它们转储出来(这是一个选项,或使用 printenv
)。您可以使用这些环境变量来确定副本的源和目标。
- 在您的应用程序本身中,您可以使用标准捆绑方法找到树的根文件夹。从那里您可以使用您选择的任何方法来遍历其中的 it/reference 个项目,如果文件夹树不在包中,您将采用完全相同的方式。
HTH
在我的例子中,我有 50 个文件夹,每个文件夹都有子文件夹和图像。我可以将它们拖到应用程序主包中,但是有很多重复的文件名,以结构化方式访问它们会更实用。
您的措辞 "it would be more practical to access them in the structured way" 似乎表明您认为 Resources
文件夹不能包含文件的文件夹树,它可以。但是,如果您让 Xcode 本身将您的资源文件复制到捆绑包中,它会将树展平,而没有任何选项可以保留它(原因不明)。要解决此问题,您可以使用构建脚本将文件复制到包中。
在大纲中,您需要通过一些阅读来填补空白:
- 首先将您的文件和文件夹添加到您的项目中。每个文件夹使用一个组,在 Xcode9 中,创建一个组会在项目目录中创建一个相应的文件夹,但在以前的版本中,您必须创建该组,然后将其与一个文件夹相关联——检查任何内容的文档 Xcode 您正在使用的版本。
- 将以这种方式添加的所有文件夹和文件标记为不是 构建目标的一部分。这可以防止 Xcode 将文件自动复制到包中,并在此过程中展平文件夹树。
- 现在在目标设置中转到 "Build Phases" 选项卡并添加一个新的构建脚本阶段。添加一个 shell 脚本,它使用类似
ditto
的东西将文件夹树复制到包中。设置了引用项目和包的各种环境变量,检查您的 Xcode 文档或只是 运行 一个虚拟脚本并将它们转储出来(这是一个选项,或使用printenv
)。您可以使用这些环境变量来确定副本的源和目标。 - 在您的应用程序本身中,您可以使用标准捆绑方法找到树的根文件夹。从那里您可以使用您选择的任何方法来遍历其中的 it/reference 个项目,如果文件夹树不在包中,您将采用完全相同的方式。
HTH