我的应用读取 iTunes 下的 XML 库文件
/Users/username/Music/iTunes/iTunes Music Library.xml
但是,如果 iTunes 资料库存储在不同的硬盘上,则该文件也将存储在不同的硬盘上。 沙箱不允许我访问此文件,除非用户授予它。
这是使用 NSOpenPanel
完成的。
但是,现在我必须在用户每次打开应用程序时请求用户访问此文件的权限,这非常烦人。
有没有办法永久授予对特定文件的访问权限?
编辑
例如,如果您在另一个应用程序中打开一个文件,如果您退出该应用程序,该应用程序将再次打开同一文件。像这样的东西会很有用。
最佳答案
您需要的是使用安全范围书签。您需要做的概述是:
- 检查您是否保存了书签(见下文),如果有则将其激活。完成。
- 让用户使用
NSOpenPanel
选择文件/文件夹 - 获取返回的 URL 并将其作为安全范围书签保存到磁盘 - 将其保存在容器中的某个位置,
NSUserDefaults
是一种选择。
就是这样。您需要阅读Apple's documentation了解详细信息。
关于objective-c - 在沙箱中重新启动后访问同一文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16842316/