Je suis l'appui de 10,4+ en choisissant la plus actuelle de l'API à 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 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.