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

标签 objective-c cocoa warnings portability

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

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

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

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

最佳答案

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

#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

关于objective-c - 已弃用的 userInfo 字典键的可移植代码 (Cocoa),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3190388/

相关文章:

warnings - Lisp 中的 "style-warning: implicitly creating new generic function"是什么?

.net - 警告 : Found conflicts between different versions of the same dependent assembly

iphone - 将密码存储在 NSString 中而不在内存中可读

iphone - Objective-C 枚举最大(按位)限制(iPhone)

ios - iOS7 和 iOS8 中的全屏自定义 Popover 问题

ios - 如何使用 UIApplicationDidBecomeActiveNotification

macos - LLDB - 退出...退出?

macos - 新 NSSearchToolbarItem 的向后兼容性

c++ - SSE 半负载 (_mm_loadh_pi/_mm_loadl_pi) 发出警告

ios - 了解一对多的核心数据删除规则