Подавление «…» не рекомендуется »при использовании responsedsToSelector
m поддерживает 10.4+, выбирая самый последний API во время выполнения:
if ([fileManager respondsToSelector:@selector(removeItemAtPath:error:)])
[fileManager removeItemAtPath:downloadDir error:NULL];
else
[fileManager removeFileAtPath:downloadDir handler:nil];
В этом случае 10.5 и выше будут использоватьremoveItemAtPath:error:
и 10.4 будет использоватьremoveFileAtPath:handler:
, Отлично, но я все еще получаю предупреждения компилятора для старых методов:
warning: 'removeFileAtPath:handler:' is deprecated [-Wdeprecated-declarations]
Есть ли синтаксисif([… respondsToSelector:@selector(…)]){ … } else { … }
что намекает компилятору (Clang) не предупреждать в этой строке?
Если нет, есть ли способ пометить эту строку для игнорирования?-Wdeprecated-declarations
Посмотрев некоторые ответы, позвольте мне уточнить, что путать компилятор с тем, что он не знает, что яЯ не действительное решение.