This question解决了如何有条件地包含基于iOS版本的代码。但它是如何运作的?
假设我在Xcode 4.5.2中将iOS Deployment Target
设置为3.2。在我的代码中,我添加了一些#ifdef
语句:
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_4_0
// Some iOS 4+ code
#endif
如果我在3.2设备上运行代码,此代码将不在那里,但如果我在4.3设备上运行它,它会,对吧?这是怎么发生的?或者我误解了这里发生了什么?
答案 0 :(得分:4)
这是一个编译时检查,因此它将在任何iOS版本上创建相同的行为。由于部署目标小于4.0,因此if语句中的代码将无法在任何设备上运行。
如果您想要所描述的行为,则需要进行运行时检查。您可以在链接的线程中看到如何执行此操作的示例。