UIDocument аварийно завершает работу при revertToContentsOfURL: завершенииHandler: с «попыткой вернуть документ, который еще не открыт» - PullRequest
4 голосов
/ 04 мая 2019

Мое приложение iOS выходит из строя на UIDocument.revert(toContentsOf url: URL, completionHandler: ((Bool) -> Void)? = nil). Из сообщения об ошибке выглядит, как будто документ должен быть возвращен к себе. Например:

**** Terminating app due to uncaught exception 
     'NSInternalInconsistencyException', 

  reason: 'attempt to revert document at URL (        
    file:///private/var/mobile/Library/Mobile%20Documents/
            iCloud~com~myapp/Documents/sampledocument.test)
    to URL (
    file:///private/var/mobile/Library/Mobile%20Documents/
            iCloud~com~myapp/Documents/sampledocument.test) 
  that is not yet open'

У меня нет конкретного кода для возврата версии документа, и я не смог воспроизвести это сам, но это происходит для ряда пользователей.

Каков будет сценарий, в котором UIDocument будет пытаться вернуть свое содержимое и почему он попытается вернуть тот же файл самому себе?

Может ли это быть состояние гонки, когда документ закрыт, но по какой-то причине пытается отменить изменения?

...