gpt4 book ai didi

macos - 防止 OS X 应用程序的沙箱容器中的原始文件通过拖放或共享扩展进行修改?

转载 作者:行者123 更新时间:2023-12-03 16:01:39 25 4
gpt4 key购买 nike

我有一个鞋盒类型(而不是基于文档)的 OS X 应用程序,它将图像存储在应用程序的沙箱容器中。

这些图像可以通过共享扩展(以 NSURL 的形式)共享或通过拖放导出。

当图像共享到图像编辑器(例如,Acorn 提供共享扩展)或拖放到图像编辑器上时,图像编辑器会从我的沙箱容器中打开文件,现在可以更改、重命名或删除此文件 - 这可能会导致我的应用程序出现各种不一致情况。

首先,我很惊讶,因为我认为沙箱中的文件只能由应用程序本身访问。但当我故意分享 NSURL 时,情况似乎并非如此。

那么,如何防止有人更改我的沙箱容器中的文件,同时仍提供文件拖放和共享扩展功能?

  • 我尝试不共享 NSURL,而是共享 NSImage,但许多共享扩展不适用于 NSImage,因此这不是一个好的选择。
  • 是否可以对沙箱中的文件进行写保护?
  • 在提供图像进行共享或拖放之前,我是否应该始终将图像复制到临时位置(对于大图像可能会很慢?)

我很高兴听到您的建议或了解有关该问题的更多信息。

最佳答案

创建 NSURL 的书签。

因此用户仍然可以重命名、移动和删除文件,但您注意到它并知道新位置和名称,并且仍然能够访问该文件。即使它在您的沙箱之外也应该可以工作。所以你可以处理这个问题。 https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSURL_Class/

这是使用 NSURL 而不是使用简单路径字符串的好处之一。

关于macos - 防止 OS X 应用程序的沙箱容器中的原始文件通过拖放或共享扩展进行修改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31407306/

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