ios - 将 50 个文件夹的数据集添加到 iOS 应用程序的最佳方法是什么?

标签 ios filesystems

就我而言,我有 50 个文件夹,每个文件夹都有子文件夹和图像。我可以将它们拖到应用程序主包中,但有很多重复的文件名,以结构化方式访问它们会更实用。

最佳答案

您的措辞“以结构化方式访问它们会更实用”似乎表明您认为 Resources 文件夹不能包含文件的文件夹树,它可以。但是,如果您让 Xcode 本身将资源文件复制到包中,它将压平树,而没有任何选项来保留它(出于未知原因)。为了解决这个问题,您可以使用构建脚本将文件复制到 bundle 中。

在大纲中,您需要阅读一些内容来填补空白:

  1. 首先将文件和文件夹添加到项目中。每个文件夹使用一个组,在 Xcode 9 中创建一个组会在项目目录中创建一个相应的文件夹,但在之前的版本中,您必须创建该组,然后将其与一个文件夹关联 - 请检查您所使用的任何 Xcode 版本的文档。<
  2. 将以这种方式添加的所有文件夹和文件标记为构建目标的一部分。这可以防止 Xcode 自动将文件复制到 bundle 中,并在此过程中展平文件夹树。
  3. 现在,在目标设置中,转到“构建阶段”选项卡并添加新的构建脚本阶段。添加一个 shell 脚本,该脚本使用类似 ditto 的内容将文件夹树复制到 bundle 中。设置引用项目和包的各种环境变量,检查 Xcode 文档或仅运行虚拟脚本并将它们转储出来(这是一个选项,或使用 printenv)。您可以使用这些环境变量来确定副本的源和目标。
  4. 在您的应用程序本身中,您可以使用标准捆绑方法找到树的根文件夹。从那里,您可以使用您选择的任何方法来遍历它/引用其中的项目,就像文件夹树不在包内一样。

HTH

关于ios - 将 50 个文件夹的数据集添加到 iOS 应用程序的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48010996/

相关文章:

ios - 将切换相机按钮添加到自定义相机 View

ios - XCode 9.0 "Jump to definition"上下文菜单经常挂起

c# - 如何确定谁更改了文件?

linux - 挂载文件系统的 LVM 快照

java - 如何监视文件中的新内容并检索该内容

ios - 调试 NSJSONSerialization 内存泄漏

ios - ics 文件 - 无法在 iOS7 中打开附加的 .ICS 文件

ruby-on-rails - 如何使 Ruby 字符串对文件系统安全?

ios - 启动TestFlight构建需要花费几秒钟(App Store应用很好)

delphi - 如何查询 "Size on disk"文件信息?