Разрешение данных iOS-закладок в конечном итоге начинает давать сбой - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть приложение для iOS, в котором я пытаюсь сохранить и перезагрузить данные закладок, используя UserDefaults.Кажется, работает хорошо, но у меня возникла проблема, когда иногда происходит сбой преобразования из закладки данных в URL.Кажется, в течение некоторого времени он работает нормально (даже при завершении и повторном запуске приложения и т. Д.), Но в конечном итоге данные закладок не будут работать (возможно, через несколько часов?).

Так что при разрешении закладкиданные примерно так:

let url = try URL(resolvingBookmarkData: data, bookmarkDataIsStale: &isStale)

Поймано исключение с описанием: Error Domain=NSCocoaErrorDomain Code=4 "The file doesn’t exist."

Я сохраняю закладку как Данные в UserDefaults.Я создаю данные закладок просто следующим образом:

let bookmarkData = try url.bookmarkData(options: .minimalBookmark)

Интересно, что если я снова вручную выберу тот же файл из средства выбора документов, то исходная закладка, сохраненная в UserDefaults, снова станет доступной.

Я просмотрел код с открытым исходным кодом в GitHub и не вижу ничего существенно отличающегося в моих реализациях от других.Ищете какие-либо советы или мысли о том, что может быть причиной этой проблемы.

1 Ответ

0 голосов
/ 16 декабря 2018

Оказывается, проблема была в том, что я не сохранял закладку в исходном файле, а копировал ее в каталог tmp.Я только что что-то реорганизовал и случайно начал использовать UIDocumentPickerMode.import вместо UIDocumentPickerMode.open.Это объясняет, почему это работало в течение произвольного периода времени, пока каталог tmp не был очищен.

...