4

这个问题解决了如何有条件地包含基于 iOS 版本的代码。但它是如何工作的?

假设我iOS Deployment Target在 Xcode 4.5.2 中设置为 3.2。在我的代码中,我输入了一些#ifdef语句:

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_4_0
  // Some iOS 4+ code
#endif

如果我在 3.2 设备上运行该代码,则该代码将不存在,但如果我在 4.3 设备上运行它,它会存在,对吗?这是怎么发生的?还是我误解了这里发生了什么?

4

1 回答 1

4

这是一个编译时检查,因此它将在任何 iOS 版本上创建相同的行为。由于部署目标小于 4.0,if 语句中的代码不会在任何设备上运行。

如果您想要您描述的行为,您需要进行运行时检查。您可以在链接的线程中看到如何执行此操作的示例。

于 2012-11-16T02:06:45.303 回答