【问题标题】:iOS App Documents directory being droppediOS App Documents 目录被删除
【发布时间】:2012-03-27 05:17:45
【问题描述】:

在我的 iOS 应用程序中,我将数据保存在文档目录中,并且按照 Apple 的建议,这些数据都被标记为不同步到云端。

我遇到的问题是每隔一段时间我的应用程序的文档目录就会被删除,这会导致用户数据丢失。我很难找到这种情况发生的时间,因为这种情况很少见,而且没有任何事情导致了这个问题。

我最初认为文件夹变得太大,所以操作系统只是删除了文件夹,但 Apple 没有说明文档目录的任何大小限制或任何内容,至少我找不到。

有没有人遇到过类似的问题,或者有没有人有任何信息可以阐明我的问题?

谢谢

编辑:

问题又出现了,下面是我的apps文档截图,没有文档目录,刚刚被删除:

Xcode 每隔几秒就会不断吐出这条消息:

错误:来自数据库的失败结束事务'无法提交 - 否 交易处于活动状态'

【问题讨论】:

  • 请注意,新的 Apple 文档指出,在某些(可能是极端的)情况下,标记为“不同步”的文件/目录可能会在不发出警告/通知的情况下被删除。
  • 我收到了来自 2 个不同应用程序的用户的相同错误报告。您是否找到一些解决方法来避免掉线?
  • @pilot34 我相信它发生的原因是因为当我在这个应用程序上工作时,我没有使用 Core Data。该应用程序在文档目录中存储了一堆文件,这些文件本来可以更有效地存储在 Core Data 模型中。
  • 谢谢。我存储千兆字节的 m4a、mp4 和 pdf 文件。我不认为将它们保存到 CoreData 是一个好主意:(
  • @pilot34 很好地连接一些点,该应用程序正在存储大量 mp3。

标签: iphone objective-c ios nsdocumentdirectory


【解决方案1】:

你确定是文档目录吗?请检查一下。如here 所报告的,这是 Caches 和 tmp 目录的已知情况。

【讨论】:

  • 是的,我确定我们使用的是文档目录,并且我了解 tmp 和 Caches 目录的功能。当它发生时,我在 Organizer 中查看了我的 Applicaion 数据,它包含 tmp 和 Caches 目录,但 Documents 消失了,直到我再次生成一个文件,然后它才重新出现,只有新文件。
  • 那么您正在以某种方式删除您的文件。你搜索过你所有的 NSFileManager 调用吗?尝试对其进行子类化并使用断言来检查它是否正在删除任何内容。无论如何,为这个谜+1。
  • 我在任何地方都记录了我要删除的任何文件,但是这些调用都不应该删除整个目录本身,但值得一试。最困难的事情是尝试重新创建它,因为我说它不一致。
  • 我没有真正研究过这个问题,因为它已经有一段时间没有发生了,但它确实发生了,我能够获得更多关于它的信息,我编辑了我的原始帖子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多