【发布时间】: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_OS_VERSION_MAX_ALLOWED
和
__IPHONE_OS_VERSION_MIN_REQUIRED
我应该使用哪个来检测新旧 SDK,例如
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_2
【问题讨论】:
__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 以获得进一步的解释、提示和技巧。
【讨论】: