La suppression de “'...' est obsolète” lors de l'utilisation de respondsToSelector

Je suis appui 10.4+ en choisissant la plus actuelle de l'API, au moment de l'exécution:

if ([fileManager respondsToSelector:@selector(removeItemAtPath:error:)])
    [fileManager removeItemAtPath:downloadDir error:NULL];
else
    [fileManager removeFileAtPath:downloadDir handler:nil];

Dans ce cas, 10.5 et utilisera removeItemAtPath:error: et 10,4 utilisera removeFileAtPath:handler:. Super, mais j'ai toujours les avertissements du compilateur pour les vieilles méthodes:

warning: 'removeFileAtPath:handler:' is deprecated [-Wdeprecated-declarations]

Est-il une syntaxe de if([… respondsToSelector:@selector(…)]){ … } else { … } qui laisse le compilateur Clang) de ne pas avertir sur cette ligne?

Si non, est-il un moyen de tag que la ligne sera ignorée pour -Wdeprecated-declarations?


Après avoir vu certaines réponses, permettez-moi de préciser que la confusion entre le compilateur en ne sachant pas ce que je fais n'est pas une solution valable.

InformationsquelleAutor s4y | 2009-12-14