Условная компиляция с использованием MACOSX_DEPLOYMENT_TARGET в Xcode для приложения Какао

В приложении Какао я хотел бы использовать условную компиляцию, например:

#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 в обоих тоже.)

Что я делаю не так? Есть ли у меня какое-то фундаментальное непонимание условной компиляции?

7
задан user532477 6 December 2010 в 17:47
поделиться