В приложении Какао я бы хотел использовать условную компиляцию, например:
#if MACOSX_DEPLOYMENT_TARGET <= MAC_OS_X_VERSION_10_4
[[NSFileManager defaultManager] removeFileAtPath:path handler:nil];
#else
[[NSFileManager defaultManager] removeItemAtPath:path error:NULL];
#endif
Я надеюсь, что это позволит избежать предупреждений компилятора об removeFileAtPath: не рекомендуется, когда MACOSX_DEPLOYMENT_TARGET = 10.6, так как он не должен компилировать эту строку.
Это не работает.
Когда MACOSX_DEPLOYMENT_TARGET = 10,6, я получаю предупреждение о том, что removeFileAtPath: устарело. Но он не должен компилировать эту строку, поэтому он не должен предупреждать об устаревшем методе!
(Я устанавливаю MACOSX_DEPLOYMENT_TARGET как в настройках сборки проекта, так и в настройках целевой сборки. У меня BASE_SDK установлен на 10,6, и в обоих тоже указан GCC 4.2.)
Что я делаю не так? Есть ли у меня какое-то принципиальное недопонимание условной компиляции?