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