我正在尝试将 url 另存为书签以持续访问 iphone 上的文件。
为此,我调用了 bookmarkData
函数。
但是为了防止我遇到的错误,例如:
Error Domain=NSCocoaErrorDomain Code=260 “文件不存在,无法打开。”
我试图在调用函数时添加 withSecurityScope
选项。
尽管我在 Apple 文档中找到了多个对此选项的引用,但在使用 NSURL.BookmarkCreationOptions.withSecurityScope
时我似乎无法找到它。它只说 'withSecurityScope' 不可用
。我也查看了类定义,但仍然没有运气。
我希望有人能帮我解决这个问题。 非常感谢!
最佳答案
有两个阶段。
您必须在获得许可后从 url 创建书签数据(例如在
NSOpenPanel
中)并保存let data = try url.bookmarkData(options: [.withSecurityScope]) UserDefaults.standard.set(data, forKey: "mySecureURL")
要使用它,请从
UserDefaults
获取数据并解析它guard let data = UserDefaults.standard.data(forKey: "mySecureURL") else { // do some error handling } var isStale = false let url = try URL(resolvingBookmarkData: data, options:[.withSecurityScope], bookmarkDataIsStale: &isStale) if isStale { // create new bookmark data from the current url and save it again described in 1. }
现在你可以使用
url
但你必须把它包在这两行中url.startAccessingSecurityScopedResource() // do something with `url` url.stopAccessingSecurityScopedResource()
关于ios - withSecurityScope 在 NSURL.BookmarkCreationOptions 中不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52524827/