Cocoaアプリケーションでは、次のような条件付きコンパイルを使用したいと思います。
#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も指定しています。)
私は何が間違っているのですか?条件付きコンパイルについて根本的な誤解がありますか?