我有一个鞋盒类型(而不是基于文档的)的OS X应用程序,它将图像存储在应用程序的沙箱容器中。
这些图像可以通过共享扩展(以NSURL形式)或通过拖放导出。
当将图像共享到图像编辑器(例如Acorn提供的共享扩展)或将其放置到图像编辑器上时,图像编辑器会从我的沙箱容器内打开该文件,并且现在可以更改、重命名或删除该文件 - 这可能导致我的应用程序发生各种不一致性。
首先,我感到惊讶,因为我认为,沙箱中的文件只能由应用程序本身访问。但是,当我有意分享NSURL时,似乎并非如此。
那么我如何防止别人在我的沙箱容器中更改文件,同时仍然提供它们的拖放和共享扩展呢?
- 我尝试不共享NSURL,而是使用NSImages,但是许多共享扩展无法使用NSImages,因此这不是一个好选择。
- 是否有可能对沙箱中的文件进行写保护?
- 在提供共享或拖放之前,我是否应始终将图像的副本复制到临时位置(对于大型图像可能很慢)?
我很乐意听取您的建议或了解更多有关问题的信息。