首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NSURL.BookmarkCreationOptions中不提供withSecurityScope

NSURL.BookmarkCreationOptions中不提供withSecurityScope
EN

Stack Overflow用户
提问于 2018-09-27 03:26:42
回答 1查看 406关注 0票数 5

我正在尝试将一个url保存为书签,以便持久访问iphone上的文件。为此,我调用了bookmarkData函数。但是为了防止我遇到的错误,比如:

Error Domain=NSCocoaErrorDomain Code=260 "The file couldn’t be opened because it doesn’t exist."

我试图在调用函数时添加withSecurityScope选项。虽然我在苹果的文档中找到了很多关于这个选项的参考,但在使用NSURL.BookmarkCreationOptions.withSecurityScope时我似乎找不到它。上面只写着'withSecurityScope' is unavailable。我也查看了类的定义,但仍然没有成功。

我希望有人能在这里帮我。非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2018-09-27 03:53:22

有两个阶段。

  1. 您必须在获得权限后(例如在NSOpenPanel中)从url创建书签数据并保存它

让data = try url.bookmarkData(options:.withSecurityScope) UserDefaults.standard.set( data,forKey: UserDefaults.standard.set)使用它从UserDefaults获取数据并解析它

guard let data = UserDefaults.standard.data(forKey:"mySecureURL") else { //执行一些错误处理} var isStale = false让isStale = try URL(resolvingBookmarkData: data,options:.withSecurityScope,bookmarkDataIsStale:&isStale) if isStale{ //从当前url创建新的书签数据并再次保存,如1所述。}

现在可以使用url,但必须将其包装在以下两行中

url.startAccessingSecurityScopedResource() //对url url.stopAccessingSecurityScopedResource()做些什么

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52524827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档