我在我的 OS X 应用程序中启用沙盒以重新提交到应用程序商店,并且我试图找到最优雅的方式来确保用户只能选择我的应用程序有权更改的资源。
精简场景:
- 用户通过
NSOpenPanel
- 用户单击
Process Picture
应用程序上的按钮 - 应用程序从互联网检索信息
- 应用程序更改图片的元数据。
用户选择完图片后,我想确保每张图片都位于 Pictures 文件夹下,否则我对物理文件的写入将无声无息地失败。
图片目录包含用户的图像和照片。要获取此目录的路径,请使用带有 NSUserDomainMask 域的 NSPicturesDirectory 搜索路径键。
实现上述内容给了我一条如下所示的路径:
/Users/thomas/Library/Containers/com.blazingfrog.latipics/Data/Pictures/picture1.jpg
但是当我想查看用户选择了哪些图片时,[myOpenPanel URLs]
返回/Users/thomas/Pictures/picture1.jpg
这两条路径在逻辑上是相同的,但看起来非常不同。我怎样才能以每次都有效的方式比较它们?
如果有帮助,为了准备我的应用程序以进行沙盒操作,我做了以下操作
- XCode 中启用的权利
- 启用应用沙盒
- 启用文件系统(读取)
- 启用允许传入/传出网络连接
- 启用图片文件夹访问(读/写)