这两个宏有什么区别?

coc*_*est 10 iphone macros

有什么区别

__IPHONE_OS_VERSION_MAX_ALLOWED

__IPHONE_OS_VERSION_MIN_REQUIRED

我应该使用哪个来检测旧的/新的SDK,比如

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_2
Run Code Online (Sandbox Code Playgroud)

Joo*_*ost 14

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

例如,从iOS 3.2开始我们就有了这个UIBezierPath类.如果您正在针对SDK 3.1进行编译(大概是在iPhone模拟器中测试它),则此新类不可用,因此编译器会向您发出该类不存在的警告.很公平,但我们不希望每次针对旧版SDK构建它时都会评论该特定代码,仅用于模拟器测试.我们只想隐藏这些代码块,这些宏可以实现.

请阅读这篇关于Cocoa with Love的文章,以获得进一步的解释,提示和技巧.