git
函数。
但是为了防止出现错误,例如:
bookmarkData
我正在尝试在调用函数时添加Error Domain=NSCocoaErrorDomain Code=260 "The file couldn’t be opened because it doesn’t exist."
选项。
尽管我在Apple文档中找到了对该选项的多个引用,但在使用withSecurityScope
时似乎无法找到它。它只说NSURL.BookmarkCreationOptions.withSecurityScope
。我也仔细检查了类的定义,但还是没有运气。
我希望有人可以在这里帮助我。 非常感谢!
答案 0 :(得分:0)
有两个阶段。
您必须在获得许可后(例如在NSOpenPanel
中)从URL创建书签数据并将其保存
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()