UIDocumentStateSavingError для файла в iCloud: возможные причины и способ восстановления - PullRequest
0 голосов
/ 14 февраля 2012

В ближайшем обновлении наше приложение для iOS должно экспортировать данные в текстовый файл в iCloud и импортировать данные из него. Реализация в основном завершена, и мы начали бета-тестирование. Кажется, все работает нормально для всех, кроме одного из бета-тестеров.

Что я получаю из отладочной информации, собранной API-интерфейсом TestFlight, одному из тестеров каким-то образом удалось перевести файл в состояние UIDocumentStateSavingError. До сих пор нам не удавалось вытащить файл из этого состояния, независимо от того, что он заставил его попробовать.

Вот что происходит на устройстве тестера:

  • Доступ к iCloud успешно обнаружен с использованием URLForUbiquityContainerIdentifier.
  • Запускается NSMetadataQuery, чтобы найти файл и возвращает ровно один результат.
  • Для полученного URL-адреса создается подкласс UIDocument с использованием initWithFileURL:.
  • Документ находится в состоянии UIDocumentStateSavingError. Кроме того, это установленный флаг состояния only .
  • Вызов openWithCompletionHandler: возвращает обработчику ошибку, и loadFromContents:ofType:error: на UIDocument вызывает , а не .

Затем мы создали новую версию приложения, которая выглядит следующим образом:

  • Приложение пытается удалить ошибочный файл, используя [[NSFileManager defaultManager] removeItemAtURL:doc.fileURL error:&err].
  • Получившийся NSError означает, что «Операция не может быть завершена. Нет такого файла или каталога».

Удаление файла было последним, что мы могли придумать, чтобы определить состояние файла. Будем очень благодарны за любые подсказки о том, как решить эту проблему или о том, что может быть причиной ошибки.

...