当前位置: 首页 > 面试题库 >

重用安全范围书签

张伯寅
2023-03-14
问题内容

在我的应用程序中,我想使用安全范围内的书签访问本地文件目录。

如《应用程序沙箱设计指南》中所述,我将用户指定的文件夹(NSOpenPanel)存储在安全范围内的书签(作为NSData)中。

但是,我发现URLByResolvingBookmarkData在Swift中不再可用。我不知道在重新启动应用程序后如何访问URL并将权限授予先前选择的目录。有任何想法吗?

/// OpenPanel and set the folderPath
var folderPath: NSURL? {
    didSet {
        do {
            let bookmark = try folderPath?.bookmarkDataWithOptions(.SecurityScopeAllowOnlyReadAccess, includingResourceValuesForKeys: nil, relativeToURL: nil)

        } catch  {
            print("Set bookMark fails")
        }
    }
}

问题答案:

我用 NSUserDefaults 弄清楚了。

var userDefault = NSUserDefaults.standardUserDefaults()
var folderPath: NSURL? {
    didSet {
        do {
            let bookmark = try folderPath?.bookmarkDataWithOptions(.SecurityScopeAllowOnlyReadAccess, includingResourceValuesForKeys: nil, relativeToURL: nil)
            userDefault.setObject(bookmark, forKey: "bookmark")
        } catch let error as NSError {
            print("Set Bookmark Fails: \(error.description)")
        }
    }
}

func applicationDidFinishLaunching(aNotification: NSNotification) {
    if let bookmarkData = userDefault.objectForKey("bookmark") as? NSData {
        do {
            let url = try NSURL.init(byResolvingBookmarkData: bookmarkData, options: .WithoutUI, relativeToURL: nil, bookmarkDataIsStale: nil)
            url.startAccessingSecurityScopedResource()
        } catch let error as NSError {
            print("Bookmark Access Fails: \(error.description)")
        }
    }
}


 类似资料:
  • 本文向大家介绍C#范围和重复,包括了C#范围和重复的使用技巧和注意事项,需要的朋友参考一下 示例 的Range和Repeat静态方法Enumerable可用于生成简单序列。 范围 Enumerable.Range() 给出给定起始值和计数的整数序列。 .NET Fiddle上的实时演示 重复 Enumerable.Repeat() 在给定一个元素和所需重复次数的情况下,生成一系列重复元素。 .NE

  • 问题内容: 我正在使用spring 4,并且想使用spring security 3来控制我的登录表单。所以我在数据库中有以下表格: 用户表: 角色表: 和 users_roles 我的 spring-security配置 文件具有以下几行: 当我尝试连接时,出现以下错误: 您能告诉我我的配置有什么问题吗? 谢谢 问题答案: 在和混合起来。将第一个SQL查询移至第二个,反之亦然。 也许您也想更改为

  • 如何在一定范围内生成安全的统一随机数?范围可能在0到100之间。(上限不是2的幂)。 <代码>java。安全SecureRandom似乎提供了范围0。。2^n。

  • Gateway/Worker 的进程模型 特点: 从图上我们可以看出Gateway负责接收客户端的连接以及连接上的数据,然后Worker接收Gateway发来的数据做处理,然后再经由Gateway把结果转发给其它客户端。每个客户端都有很多的路由到达另外一个客户端,例如client⑦与client①可以经由蓝色路径完成数据通讯 优点: 1、可以方便的实现客户端之间的通讯 2、Gateway与Work

  • 由于valgrind中出现了一些分段错误和警告,我发现这段代码不正确,并且在for range循环中有一些悬而未决的引用。 看起来好像开始和结束是从一个临时循环中提取的,并且在循环中丢失了。 当然,一种方法是 然而,我想知道为什么for(auto e:f()[5])是一个错误,以及是否有更好的方法或某种方法来设计f,甚至容器(

  • 我的Spring Boot应用程序正在调用许多外部soap服务。当我在本地机器中运行应用程序时,我需要使用keytool命令在我的JVM中安装所有的安全证书。然而,当我将我的应用程序部署到pivotal cloud foundry平台时,应用程序并没有抱怨安全证书。我使用的服务主要托管在运行在不同数据中心上的weblogic集群中。对于部署在pcf平台上的应用程序为什么不要求安装安全证书,有没有可