
#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.)
我究竟做错了什么?我是否对条件编译有一些根本的误解?
解决方法 MACOSX_DEPLOYMENT_TARGET主要用于执行弱链接.您应该使用MAC_OS_X_VERSION_MIN_required来执行条件编译:#if MAC_OS_X_VERSION_MIN_required < MAC_OS_X_VERSION_10_5 [[NSfileManager defaultManager] removefileAtPath:path handler:nil];#else [[NSfileManager defaultManager] removeItemAtPath:path error:NulL];#endif
有关更多示例,请参阅Apple的Ensuring Backwards Binary Compatibility – Weak Linking and Availability Macros on Mac OS X.
总结以上是内存溢出为你收集整理的使用Xcode中的MACOSX_DEPLOYMENT_TARGET为Cocoa应用程序进行条件编译全部内容,希望文章能够帮你解决使用Xcode中的MACOSX_DEPLOYMENT_TARGET为Cocoa应用程序进行条件编译所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)