В 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 ключей словаря?
Вы можете использовать директивы препроцессора следующим образом:
#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
Попробуйте установить базовый SDK на 10.6, а цель развертывания - на 10.5.