Подавление «…» не рекомендуется »при использовании responsedsToSelector

Я поддерживаю 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?

Посмотрев некоторые ответы, позвольте мне уточнить, что путать компилятор с тем, что он не знает, что я делаю, не является правильным решением.

Ответы на вопрос(5)

Ваш ответ на вопрос