【问题标题】:What is the default folder to save files within an app in iOS 8在 iOS 8 中的应用程序中保存文件的默认文件夹是什么
【发布时间】:2014-12-24 05:16:45
【问题描述】:

我有一个应用程序可以毫无问题地在 iOS 7 中保存文件,我可以在 iPad 上找到它们。 路径是:/var/mobile/Applications/"UDID"/Documents iOS 8 中的同一个应用程序,如果文件保存在某处,我无法保存和/或找到它们。它尝试将其保存到 /private/var/Containers/Bundles/Application/"UDID"/Documents 但随后它尝试从 /private/var/Containers/Bundles/Application/"UDID" 加载保存的文件 而且我无法将目录更改为 /private/var/Containers/Bundles/Application/"UDID"/Documents 来查找文件。 有什么见解吗?

【问题讨论】:

  • 在您的应用中记录路径,以便您知道实际位置。

标签: ios file


【解决方案1】:

您应该阅读TN2406: Changes to App Containers in iOS 8,它告诉我们以下内容(已添加重点):

iOS 8 更改了用于 存储用户和应用程序数据(例如文档、库)。虽然 这些目录的位置一直是一个实现 细节,一些应用程序不正确地假设文件和 库目录与应用程序的目录位于同一目录中 捆。 iOS 8 从应用程序中拆分应用程序的数据 捆。 尝试获取文档路径的代码或 库目录将在 iOS 8 上返回无效路径。 正在尝试 访问此路径将失败,并可能终止您的应用程序。

它还解释了如何使用 NSFileManager 来获取 Documents 目录的位置,本质上是这样的:

NSURL *documentsDirectoryURL = [[[NSFileManager defaultManager]
                                 URLsForDirectory:NSDocumentDirectory
                                 inDomains:NSUserDomainMask]
                                lastObject];

【讨论】:

  • 那么,保存文件的默认文件夹是什么?
  • @publicENEMY 没有“默认”目录——您应该指定要保存文件的位置。通常,您会使用 Documents 或 Caches 目录存储应用程序数据,具体取决于您是否希望保留它,但这取决于您。这里的重点是您应该向系统询问路径,而不是尝试自己构建。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-07
  • 1970-01-01
  • 1970-01-01
  • 2015-12-11
  • 1970-01-01
  • 2018-05-23
相关资源
最近更新 更多