У меня есть приложение для 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 и не вижу ничего существенного в своих реализациях по сравнению с другими. Ищу любые советы или мысли о том, что может быть причиной этой проблемы.