- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有一个沙盒应用程序,它允许用户将文件从 Finder 拖放到项目窗口中。我想从现有位置使用这些文件,即通过引用,而不是将它们复制到项目文件夹,因为用户可能拥有大量现有文件库。
当应用程序运行时,这些文件完全可供读取。 (它们是 .mp4,我可以在 AVPlayer View 中预览它们)。
当我保存应用程序的项目时,我包含文件的 NSURL。当应用程序重新启动并稍后重新打开项目时,文件不可用,并且控制台显示 deny(1) file-read-data - 这意味着该文件不可读取。 (访问被拒绝)。
这可能是因为文件位于沙箱之外。然而,当它们放到应用程序上时仍然可读。在我看来,应用程序在第一次打开时将它们视为“用户选择”,因此它们是可读的,但在下一个 session 中,因为它们是从 NSCoder 作为 NSURL 加载的,所以它们不被视为用户选择的,因此无法访问!
我的应用目前拥有以下权利:com.apple.security.files.user-selected.read-onlycom.apple.security.files.user-selected.read-write
我需要对权利等做一些事情才能允许稍后重新加载文件吗?
最佳答案
首次删除文件时,您需要创建并保存一个安全范围书签,您可以在后续应用程序启动时使用该书签来重新获得对该文件的访问权限。阅读 Security-Scoped Bookmarks and Persistent Resource Access在 Apple 的深度应用沙箱中。
关于objective-c - 沙盒应用程序,通过引用包含文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59173683/
我是一名优秀的程序员,十分优秀!