我有一个鞋盒类型(与基于文档相对)OS X应用程序,它将图像存储在应用程序的沙盒容器中。
这些图片可以通过Share Extensions(以NSURL的形式)共享或通过拖放方式导出。
当图像与图像编辑器共享(例如Acorn提供共享扩展)或放在图像编辑器上时,图像编辑器会从我的沙箱容器中打开文件,现在可以更改,重命名或删除这个文件 - 这可能导致我的应用程序出现各种不一致。
首先,我很惊讶,因为我认为,沙箱中的文件只能由应用程序本身访问。但是当我故意分享NSURL时,情况似乎并非如此。
那么如何防止有人可以更改我的沙盒容器中的文件,同时还提供拖放和共享扩展?
我很高兴听到您的建议或了解有关此问题的更多信息。
答案 0 :(得分:1)
创建NSURL的书签。
因此,用户仍然可以重命名,移动和删除文件,但您会注意到并知道新的位置和名称,但仍然可以访问该文件。即使它在你的沙箱之外也应该工作。 所以你可以处理这个。 https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSURL_Class/
使用NSURL的好处之一,而不是简单的路径字符串。