在我基于 iCloud 的应用程序中,我注意到如果在 UIDocument 打开(并且尚未关闭)时发生崩溃,文档的状态有时会变为UIDocumentStateSavingError并且它永远不会再次成功打开。
当我[UIDocument openWithCompletionHandler:]在此之后运行时,文档永远不会打开,返回NOforsuccess和 5 (UIDocumentStateClosed和UIDocumentStateSavingError) for documentState。
在 iOS 5 上,我还观察到它NSMetadataQueryDidUpdateNotification会不断被调用(每秒),直到文件被删除并重新启动应用程序。这会导致应用程序中出现额外的可用性问题。
还有一件事,在 developer.icloud.com 上,我注意到该文件显示了第二个存在冲突的版本。但是,即使重新启动或重新安装应用程序,在我的任何设备上都没有发现此冲突。
我该怎么做才能让 UIDocument 正常打开?
这是我到目前为止所尝试的:
- 使用 .检查 - [NSFileVersion unresolvedConflictVersionsOfItemAtURL:]冲突并删除所有旧版本- [NSFileVersion removeOtherVersionsOfItemAtURL:]。
- 在调用 - [[NSFileManager defaultManager] evictUbiquitousItemAtURL:]之前调用- [UIDocument openWithCompletionHandler:]以将文件重新下载到设备。
- 从 developer.icloud.com 下载主要版本和冲突版本,查看其中是否有损坏或部分文件。两个都开得很好。 
- 我的头撞在我的桌子上。初步结果不成功。