gpt4 book ai didi

objective-c - 沙盒应用程序,通过引用包含文件?

转载 作者:行者123 更新时间:2023-12-03 17:46:21 26 4
gpt4 key购买 nike

所以我有一个沙盒应用程序,它允许用户将文件从 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/

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