在Cocoa应用程序中,我想使用条件编译,例如:
我的希望是,这将避免编译器在MACOSX_DEPLOYMENT_TARGET = 10.6时发出关于removeFileAtPath:已弃用的警告,因为它不应该编译该行代码。
但它并没有起作用。
当MACOSX_DEPLOYMENT_TARGET = 10.6时,我收到一个有关removeFileAtPath:已弃用的警告。但它不应该编译该行代码,所以也不应该警告该方法已弃用!
(我在项目构建设置和目标构建设置中都设置了MACOSX_DEPLOYMENT_TARGET。我还在两个设置中都指定了基础SDK为10.6,并且使用了GCC 4.2。)
我做错了什么?我对条件编译有一些基本的误解吗?
#if MACOSX_DEPLOYMENT_TARGET <= MAC_OS_X_VERSION_10_4
[[NSFileManager defaultManager] removeFileAtPath:path handler:nil];
#else
[[NSFileManager defaultManager] removeItemAtPath:path error:NULL];
#endif
我的希望是,这将避免编译器在MACOSX_DEPLOYMENT_TARGET = 10.6时发出关于removeFileAtPath:已弃用的警告,因为它不应该编译该行代码。
但它并没有起作用。
当MACOSX_DEPLOYMENT_TARGET = 10.6时,我收到一个有关removeFileAtPath:已弃用的警告。但它不应该编译该行代码,所以也不应该警告该方法已弃用!
(我在项目构建设置和目标构建设置中都设置了MACOSX_DEPLOYMENT_TARGET。我还在两个设置中都指定了基础SDK为10.6,并且使用了GCC 4.2。)
我做错了什么?我对条件编译有一些基本的误解吗?