之间有什么区别
__ IPHONE_OS_VERSION_MAX_ALLOWED
和
__ IPHONE_OS_VERSION_MIN_REQUIRED
我应该使用哪个来检测旧的/新的SDK,例如
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_2
答案 0 :(得分:14)
__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了解更多说明,提示和技巧。