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

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

Interesting Posts

Физика SpriteKit огромная потеря FPS на iOS 9

Создайте вырез UIImage

Как аутентифицировать пользователей iOS / iPhone с удаленным веб-приложением и повторно использовать билет аутентификации в будущих запросах к одному и тому же веб-приложению?

Как начать отслеживание GPS, вызванное iBeacon в Xamarin iOS?

Ошибка Qt iOS

Цель C: UIDatePicker UIControlEventValueChanged только активируется при втором выборе

Xcode Interface Builder Не показывать объект делегирования приложения

Основные данные: требуется ли сделать выборку в постоянном хранилище?

Добавить UIViewController в UIScrollView swift 3

textView, настроенный в IB iOS 7, меняет шрифт на стандартный шрифт после того, как свойство text изменяется программно

Как разобрать массив внутри разбора JSON в Swift?

Цель-c: Как обнаружить двойное нажатие на просмотр?

Вход в систему для iOS: ошибка «Невозможно подстроить значение типа» с индексом типа «String» »

UISlider с неровными шагами.

UIViewController init vs initWithNibName: bundle:

PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.