私の iCloud ベースのアプリで、UIDocument が開いている (そしてまだ閉じられていない) 間にクラッシュが発生した場合、ドキュメントのステータスが になりUIDocumentStateSavingError
、二度と正常に開かないことに気付きました。
この後に実行すると、ドキュメントが開かれず、と 5 (および) が[UIDocument openWithCompletionHandler:]
返さNO
れます。success
UIDocumentStateClosed
UIDocumentStateSavingError
documentState
iOS 5 ではNSMetadataQueryDidUpdateNotification
、ファイルが削除されてアプリが再起動されるまで、常に (毎秒) 呼び出されていることも確認しました。これにより、アプリでさらにユーザビリティの問題が発生します。
もう 1 つ、developer.icloud.com で、競合する 2 つ目のバージョンが存在することをファイルが示していることに気付きました。ただし、アプリを再起動または再インストールしても、この競合はどのデバイスでも見つかりません。
UIDocument を正常に開くにはどうすればよいですか?
これが私がこれまでに試したことです:
を使用して競合をチェック
[NSFileVersion unresolvedConflictVersionsOfItemAtURL:]
し、古いバージョンをすべて削除してい[NSFileVersion removeOtherVersionsOfItemAtURL:]
ます。ファイルをデバイスに再ダウンロードするために呼び出す
[[NSFileManager defaultManager] evictUbiquitousItemAtURL:]
前に呼び出します。[UIDocument openWithCompletionHandler:]
developer.icloud.com からメイン バージョンと競合するバージョンをダウンロードして、破損したファイルや部分的なファイルがないかどうかを確認します。どちらも問題なく開きます。
机に頭をぶつけます。暫定結果は不合格です。