事实证明,使用NSURLBookmarkCreationWithSecurityScope
10.7 - 10.7.2 不会导致问题。-[NSURL startAccessingSecurityScopedResource]:
导致失败的原因是在 10.7.3 之前不支持的调用。因此,您需要使用 OS 检查或 respondsToSelector 检查来包装对此方法(以及相应的停止方法)的调用。我测试了书签在 10.7.1 中仍然有效,只要您确保不调用 start/stop。
以下是一些代码片段respondsToSelector
,可以帮助遇到此问题的任何其他人:
使用它开始使用:
if([bookmarkFileURL respondsToSelector:@selector(startAccessingSecurityScopedResource)]) { // only supported by 10.7.3 or later
[bookmarkFileURL startAccessingSecurityScopedResource]; // start using bookmarked resource
}
这停止使用:
if([bookmarkFileURL respondsToSelector:@selector(stopAccessingSecurityScopedResource)]) { // only supported by 10.7.3 or later
[bookmarkFileURL stopAccessingSecurityScopedResource]; // stop using bookmarked resource
}