如何在UIDocumentStateSavingError存在后打开UIDocument?

时间:2013-03-13 18:57:27

标签: ios objective-c icloud uidocument nsmetadataquery

在我的基于iCloud的应用程序中,我注意到如果在UIDocument打开时(并且尚未关闭)发生崩溃,则文档的状态有时会变为UIDocumentStateSavingError并且永远不会成功打开试。

在此之后运行[UIDocument openWithCompletionHandler:]时,文档永远不会打开,为NO返回success,为{{1返回UIDocumentStateClosedUIDocumentStateSavingError }}

在iOS 5上,我还观察到documentState一直被调用(每秒一次),直到文件被删除并且应用程序重新启动。这会在应用程序中导致其他可用性问题。

还有一件事,在developer.icloud.com上,我注意到该文件显示存在第二个冲突的版本。但是,在我的任何设备上都找不到此冲突,即使重新启动或重新安装该应用也不会。

如何才能正常打开UIDocument?

这是我到目前为止所尝试的内容:

  • 检查NSMetadataQueryDidUpdateNotification是否存在冲突,并使用[NSFileVersion unresolvedConflictVersionsOfItemAtURL:]删除所有旧版本。

  • 在致电[NSFileVersion removeOtherVersionsOfItemAtURL:]之前致电[[NSFileManager defaultManager] evictUbiquitousItemAtURL:],将文件重新下载到设备。

  • 从developer.icloud.com下载主要版本和冲突版本,以查看其中是否存在任何损坏或部分文件。两者都很好。

  • 朝我的桌子敲我的头。初步结果不成功。

0 个答案:

没有答案