Портативный код для userInfo ключа словаря устаревшего (Какао)

В 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 ключей словаря?

6
задан Nate Thorn 6 July 2010 в 21:31
поделиться

2 ответа

Вы можете использовать директивы препроцессора следующим образом:

#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
3
ответ дан 17 December 2019 в 07:00
поделиться

Попробуйте установить базовый SDK на 10.6, а цель развертывания - на 10.5.

1
ответ дан 17 December 2019 в 07:00
поделиться