不推荐使用的userInfo字典键的可移植代码(Cocoa)

Nat*_*orn 6 cocoa portability warnings objective-c

在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]
Run Code Online (Sandbox Code Playgroud)

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

Tom*_*ing 3

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

#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
Run Code Online (Sandbox Code Playgroud)