gpt4 book ai didi

macos - 10.7.3 之前的 Mac App Store 沙箱和处理安全范围书签

转载 作者:行者123 更新时间:2023-12-03 16:08:34 25 4
gpt4 key购买 nike

我需要我的沙盒应用程序在应用程序重新启动后重新打开打开的文件。 Apple 通过 NSURL 书签创建和解析方法中的 NSURLBookmarkCreationWithSecurityScopeNSURLBookmarkResolutionWithSecurityScope 选项提供安全范围的书签。但是,这些标志/选项仅适用于 10.7.3 或更高版本,并会导致 10.7.3 之前的应用程序失败。

如何在沙盒应用程序中处理 10.6 到 10.7.3 的文件书签的保留/重新打开?

--

后续:请参阅下面我的回答。该问题不是由使用 NSURLBookmarkCreationWithSecurityScope 引起的,而是由使用安全范围的书签启动和停止方法引起的。

最佳答案

事实证明,使用 NSURLBookmarkCreationWithSecurityScope 不会导致 10.7 - 10.7.2 出现问题。导致失败的原因是调用 -[NSURL startAccessingSecurityScopedResource]:,在 10.7.3 之前不支持该调用。因此,您需要通过操作系统检查或respondsToSelector 检查来包装对此方法(以及相应的停止方法)的调用。我测试过,只要确保不调用开始/停止,书签在 10.7.1 中仍然有效。

以下是使用 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
}

关于macos - 10.7.3 之前的 Mac App Store 沙箱和处理安全范围书签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12188865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com