HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用Xcode中的MACOSX_DEPLOYMENT_TARGET为Cocoa应用程序进行条件编译大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
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.)

我究竟做错了什么?我是否对条件编译有一些根本的误解?

解决方法

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应用程序进行条件编译所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。