Как открыть 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, чтобы увидеть, являются ли какие-либо из них поврежденными или частичными файлами. Оба открываются нормально.

  • Бьюсь головой о стол. Предварительные результаты безуспешны.

0 ответов

Другие вопросы по тегам