Как открыть UIDocument после того, как существует UIDocumentStateSavingError?

В моем приложении, основанном на iCloud, я заметил, что если произойдет сбой при открытии UIDocument (и еще не закрытом), статус документа иногда становится UIDocumentStateSavingError и он никогда не открывается успешно снова.

Когда я запускаю [UIDocument openWithCompletionHandler:] после этого, документ никогда не открывается, возвращая NO для success и 5 ( UIDocumentStateClosed и UIDocumentStateSavingError ) для documentState .

На iOS 5 я также заметил, что NSMetadataQueryDidUpdateNotification постоянно вызывается (каждую секунду), пока файл не будет удален, и приложение будет перезапущено. Это вызывает дополнительные проблемы с удобством использования в приложении.

Еще одна вещь, на developer.icloud.com, я заметил, что файл показывает вторую, конфликтующую версию. Этот конфликт не найден ни на одном из моих устройств, хотя, даже если приложение перезагружается или переустанавливается.

Что мне делать, чтобы открыть UIDocument нормально?

Вот что я пробовал до сих пор:

  • Проверка [NSFileVersion unresolvedConflictVersionsOfItemAtURL:] для конфликтов и удаление всей старой версии с помощью [NSFileVersion removeOtherVersionsOfItemAtURL:] .

  • Вызов [[NSFileManager defaultManager] evictUbiquitousItemAtURL:] перед вызовом [UIDocument openWithCompletionHandler:] для повторной загрузки файла на устройство.

  • Загрузите основные и конфликтующие версии с сайта developer.icloud.com, чтобы узнать, являются ли какие-либо из них поврежденными или частичными файлами. Оба открыты нормально.

  • Я ударился головой о стол. Предварительные результаты не увенчались успехом.

  • NSFileWrapper загружает все в память?
  • UIDocument & NSFileWrapper - большие файлы, требующие длительного хранения, несмотря на дополнительные изменения
  • UIDocument никогда не вызывает dealloc
  • UIDocument & NSFileWrapper - NSFastEnumerationMutationHandler при изменении обертки файла во время сохранения
  • DocumentPickerViewController в режиме перемещения или экспорта отклонен с несуществующим URL (создание расширения приложения поставщика документов)
  • iOS - EncodeWithCoder - Кодировать ниль
  • Архитектура и производительность UIDocument & NSFileWrapper
  • openWithCompletionHandler никогда не вызывает блок завершения в iPhone5
  • Является ли UIDocument подходящей стратегией для крупных документов с метаданными?
  • Правильный способ обнаружения удаления документов в iCloud через устройства?
  • Почему iCloud иногда перестает работать?
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.