6

我的应用程序使用 iCloud。我的应用程序将其所有数据存储在 1 个文档中,并且永远不应超过 1 个文档。但是,有时我的 NSMetadataQuery 会返回 2 个文档:

0: Documents/(A Document being saved bt MyApp)/MyDoc.ext
1: Documents/MyDoc.ext

这主要发生在用户在 iOS 设备重启后不久打开应用程序时。

在检查这 2 个文档时,文档 0 是具有最新更新的文档,所以这就是我们想要的。

这个“正在保存的文档”最终出现并成为最新文档的原因是什么,我该如何正确处理,因此 Documents/MyDoc.ext 将是具有最新内容的文档。

谢谢,-r

4

2 回答 2

5

我认为 Stuart 的评论提供了您将得到的大部分答案。仅文档被称为“(保存的文档)”而不是“(保存的文档)这一事实就强烈表明他是对的。
我想现在由您来弄清楚为什么保存文档会崩溃或永远不会完成或被终止或其他任何情况。如果您的应用程序在进入后台时保存文档的时间过长、崩溃或其他原因,则可能是超时 - 我认为您没有为任何人提供足够的信息来给您非常准确的答案。

于 2013-06-10T11:54:11.637 回答
1

Documents中名为“A Document Being Saved by AppName”的文件夹是一个临时文件夹,用于存储二进制大对象(BLOB)。

通常,如果您的应用程序保存成功,则应清空该文件夹。但是,如果它在保存过程中崩溃,该文件夹将存储一些数据以供您处理。基本上,我总是在启动时删除目录。因此,如果 BLOB 没有移动到隐藏的 BLOB 目录中,它将不在数据库中。

希望有帮助。

于 2013-06-10T16:26:37.123 回答