Rya*_*aft 1 nsurl ios security-scoped-bookmarks swift
我有一个 iOS 应用程序,我正在尝试使用 UserDefaults 保留并重新加载书签数据。似乎工作正常,但我遇到一个问题,有时从书签数据到 URL 的转换失败。它似乎在一段时间内工作正常(甚至在应用程序终止和重新启动等情况下),但最终书签数据将失败(可能在几个小时后?)。
\n\n因此,在解析书签数据时,如下所示:
\n\nlet url = try URL(resolvingBookmarkData: data, bookmarkDataIsStale: &isStale)
抛出捕获的异常并附带描述:Error Domain=NSCocoaErrorDomain Code=4 "The file doesn\xe2\x80\x99t exist."
我将书签作为数据存储在 UserDefaults 中。我简单地使用以下内容创建书签数据:
\n\nlet bookmarkData = try url.bookmarkData(options: .minimalBookmark)
有趣的是,如果我再次从文档选择器中手动选择相同的文件,则存储在 UserDefaults 中的原始书签将再次可访问。
\n\n我已经审查了 GitHub 中的开源代码,没有发现我的实现与其他实现有任何本质上的不同。寻找有关可能导致此问题的原因的任何提示或想法。
\n事实证明我的问题是因为我没有将书签存储到原始文件,而是存储在 tmp 目录中的副本。我最近刚刚重构了一些东西,并意外地开始使用 UIDocumentPickerMode.import 而不是 UIDocumentPickerMode.open。这解释了为什么它可以在任意一段时间内工作,直到 tmp 目录被清除。
归档时间: |
|
查看次数: |
838 次 |
最近记录: |