已弃用的 userInfo 字典键的可移植代码 (Cocoa)

发布于 2024-09-08 02:54:41 字数 677 浏览 2 评论 0原文

在 Mac OSX 10.6 中, NSErrorFailingURLStringKey userInfo 字典键已弃用,取而代之的是 NSURLErrorFailingURLStringErrorKey。我正在尝试编写可移植到 Mac OSX 10.5 和 10.6 的程序。目前,我只是使用旧密钥 - 但我的编译器给了我恼人的已弃用警告。

// The following causes deprecation warnings
[[error userInfo] objectForKey:NSErrorFailingURLStringKey]

// But this one won't work on OSX 10.5
[[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]

编写可移植代码来处理已弃用的 userInfo 字典键的最佳方法是什么?

In Mac OSX 10.6, the NSErrorFailingURLStringKey userInfo dictionary key is deprecated in favor of NSURLErrorFailingURLStringErrorKey. I am trying to write my program to be portable to both Mac OSX 10.5 and 10.6. For the time being, I'm just using the old key--but my compiler is giving me annoying deprecated warnings.

// The following causes deprecation warnings
[[error userInfo] objectForKey:NSErrorFailingURLStringKey]

// But this one won't work on OSX 10.5
[[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]

What is the best way to write portable code to handle deprecated userInfo dictionary keys?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

违心° 2024-09-15 02:54:41

您可以像这样使用预处理器指令:

#if defined(MAC_OS_X_VERSION_10_6) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
    [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]
#else
    [[error userInfo] objectForKey:NSErrorFailingURLStringKey]
#endif

You can use preprocessor directives like so:

#if defined(MAC_OS_X_VERSION_10_6) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
    [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]
#else
    [[error userInfo] objectForKey:NSErrorFailingURLStringKey]
#endif
雨的味道风的声音 2024-09-15 02:54:41

尝试将基础 SDK 设置为 10.6,将部署目标设置为 10.5。

Try setting the base SDK to 10.6 and the deployment target to 10.5.

才能让你更想念 2024-09-15 02:54:41

对于 Swift 版本,您可以使用 NSURLErrorFailingURLStringErrorKey

if let url = error?.userInfo[NSURLErrorFailingURLStringErrorKey]{
    //code
}

For Swift version, you can use NSURLErrorFailingURLStringErrorKey:

if let url = error?.userInfo[NSURLErrorFailingURLStringErrorKey]{
    //code
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文