如何检测是否可以在沙盒应用程序上访问NSURL?

Bru*_*ira 3 objective-c nsurl entitlements nsopenpanel appstore-sandbox

我正在编写一个OS X应用程序,它具有一个带有预览附件视图的打开面板.

问题是,当我选择不在具有沙盒权限的文件夹上的文件时,我无法预览它.

在尝试打开文件之前,有没有办法判断文件是否会受到沙箱权限的限制?

我已经尝试- (BOOL)checkResourceIsReachableAndReturnError:(NSError **)error NSURL该类,但即使文件受到保护,它也会返回true.

mah*_*tin 8

对于那些喜欢在代码中尽可能少地使用Plain-Old-C Lines的人:

NSURLIsReadableKey  in NSURL - (BOOL)getResourceValue:(out id *)value forKey:(NSString *)key 
Run Code Online (Sandbox Code Playgroud)

或者

NSFileManager - (BOOL)isReadableFileAtPath:(NSString *)path
Run Code Online (Sandbox Code Playgroud)

如果沙箱限制了您的访问权限,那么沙箱将导致它们返回NO,并且只是围绕access()的Cocoa-Wrappers.如果沙箱限制您的访问权限,沙箱将导致它们返回NO.