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

macos – Mac App Store沙盒和处理10.7.3之前的安全范围书签,第1张

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

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

后续行动:请在下面看到我的答案.问题不是由使用NSURLBookmarkCreationWithSecurityScope引起的,而是使用安全范围的书签启动和停止方法.

解决方法 事实证明,使用NSURLBookmarkCreationWithSecurityScope不会导致10.7 – 10.7.2的问题.导致失败的原因是调用 – [NSURL startAccessingSecurityScopedResource]:在10.7.3之前不支持.因此,您需要使用OS检查或respondsToSelector检查来包装对此方法(以及相应的stop方法)的调用.我测试了书签仍然可以在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 – Mac App Store沙盒和处理10.7.3之前的安全范围书签全部内容,希望文章能够帮你解决macos – Mac App Store沙盒和处理10.7.3之前的安全范围书签所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1018324.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存