gpt4 book ai didi

macos - 沙箱和安全范围的书签

转载 作者:行者123 更新时间:2023-12-03 16:37:15 24 4
gpt4 key购买 nike

我正在编写一个跟踪磁盘使用情况的应用程序。为此,我让用户选择驱动器(表示为以/volume 开头的 URL)。我使用核心数据保存信息。现在我想实现沙箱,但我不太确定如何继续。没有现成的权利可以让我访问此路径。据我了解,我需要......

  • 让用户选择一个特定路径(驱动器),以便能够访问应用程序目录之外的这些文件
  • 为了使这些选定的路径在应用启动时保持不变,我需要创建安全范围的书签。
  • 我想我可以将它们保存为 Core Data 对象中的 NSData(二进制类型)
  • 应用启动后,再次“解析”这些安全范围的书签以重新获得访问权限。

这有道理吗?我在这里错过了什么吗?您可以提供任何提示/提示吗?

最佳答案

你的大纲是正确的。

要让用户选择驱动器,您可以创建一个从/Volumes 开始的 NSOpenPanel。您可以使用委托(delegate)来仅允许选择该目录中的项目,因此即使用户离开,他们也无法选择其他任何内容。自定义对话框中的各种消息,使其成为“选择卷”对话框。

或者,您可以为/Volumes 本身设置一个 NSOpenPanel - 让您的用户授予您对该目录的访问权限。如果您执行此操作一次然后保存书签,您的用户就不应该受到许多烦人的打开对话框的困扰。一旦您有权访问/Volumes,您的应用程序就可以根据需要允许选择卷的子集。

警告:虽然可以访问整个目录,但如果您打算将应用程序放入 App Store,您可能会发现 Apple 认为您对用户的要求过高。您可能希望从对该目录的只读访问权限开始,如果他们取消该权限,则退回到选择单个磁盘 - 请做好准备。

您还可以将书签存储在 plist(在您的容器内)或用户默认值中,您需要确定这些书签是否比 Core Data 更适合。

HTH

关于macos - 沙箱和安全范围的书签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16616861/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com