【问题标题】:What is difference between these 2 macros?这两个宏有什么区别?
【发布时间】:2010-07-16 22:44:53
【问题描述】:

有什么区别

__IPHONE_OS_VERSION_MAX_ALLOWED

__IPHONE_OS_VERSION_MIN_REQUIRED

我应该使用哪个来检测新旧 SDK,例如

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_2

【问题讨论】:

    标签: iphone macros


    【解决方案1】:

    __IPHONE_OS_VERSION_MIN_REQUIRED 设置为部署目标,表示用户安装您的应用程序必须最低限度运行的版本。 __IPHONE_OS_VERSION_MAX_ALLOWED 设置为您正在编译的 SDK 版本,虽然这并不意味着您的应用不会在较新的版本上运行,但您可以使用它来检查某些操作系统功能是否可用。

    例如,从 iOS 3.2 开始,我们就有了 UIBezierPath 类。如果您正在针对 SDK 3.1 进行编译(大概是为了在 iPhone 模拟器中对其进行测试),则该新类不可用,因此编译器会警告您该类不存在。很公平,但我们不想在每次针对旧 SDK 构建特定代码时评论它,只是为了模拟器测试。我们只是想隐藏这些代码块,而这些宏使之成为可能。

    请阅读this article on Cocoa with Love 以获得进一步的解释、提示和技巧。

    【讨论】:

    • 但是__IPHONE_OS_VERSION_MAX_ALLOWED(不是“_REQUIRED”)呢?
    • 哎呀,我的意思是 MAX_ALLOWED,根本没有定义 MAX_REQUIRED。
    • @Joost 我想不出这两个宏的实际用例
    猜你喜欢
    • 2019-11-15
    • 1970-01-01
    • 2012-06-12
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多